propane 3.1.0.pre-java → 3.2.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.mvn/wrapper/maven-wrapper.properties +1 -0
- data/CHANGELOG.md +1 -5
- data/README.md +23 -12
- data/Rakefile +23 -12
- data/lib/propane/helpers/version_error.rb +6 -0
- data/lib/propane/runner.rb +12 -0
- data/lib/propane/version.rb +1 -1
- data/library/slider/slider.rb +1 -1
- data/mvnw +234 -0
- data/mvnw.cmd +145 -0
- data/pom.xml +28 -27
- data/propane.gemspec +2 -2
- data/src/main/java/japplemenubar/JAppleMenuBar.java +41 -47
- data/src/main/java/monkstone/ColorUtil.java +1 -1
- data/src/main/java/monkstone/MathToolModule.java +12 -11
- data/src/main/java/monkstone/PropaneLibrary.java +9 -10
- data/src/main/java/monkstone/core/LibraryProxy.java +124 -113
- data/src/main/java/monkstone/fastmath/Deglut.java +86 -89
- data/src/main/java/monkstone/filechooser/Chooser.java +7 -13
- data/src/main/java/monkstone/noise/SimplexNoise.java +0 -1
- data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +4 -4
- data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +9 -9
- data/src/main/java/monkstone/slider/SimpleSlider.java +0 -9
- data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +11 -13
- data/src/main/java/monkstone/slider/Slider.java +1 -1
- data/src/main/java/monkstone/slider/SliderBar.java +1 -1
- data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
- data/src/main/java/monkstone/slider/WheelHandler.java +8 -9
- data/src/main/java/monkstone/vecmath/AppRender.java +2 -2
- data/src/main/java/monkstone/vecmath/ShapeRender.java +2 -2
- data/src/main/java/monkstone/vecmath/package-info.java +2 -2
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +2 -2
- data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -1
- data/src/main/java/monkstone/videoevent/VideoInterface.java +11 -5
- data/src/main/java/monkstone/videoevent/package-info.java +2 -2
- data/src/main/java/processing/awt/PGraphicsJava2D.java +1742 -2243
- data/src/main/java/processing/awt/PShapeJava2D.java +268 -270
- data/src/main/java/processing/awt/PSurfaceAWT.java +821 -920
- data/src/main/java/processing/core/DesktopHandler.java +94 -0
- data/src/main/java/processing/core/PApplet.java +14170 -14082
- data/src/main/java/processing/core/PConstants.java +447 -473
- data/src/main/java/processing/core/PFont.java +867 -873
- data/src/main/java/processing/core/PGraphics.java +7193 -7428
- data/src/main/java/processing/core/PImage.java +3051 -3117
- data/src/main/java/processing/core/PMatrix.java +159 -172
- data/src/main/java/processing/core/PMatrix2D.java +403 -444
- data/src/main/java/processing/core/PMatrix3D.java +735 -749
- data/src/main/java/processing/core/PShape.java +2651 -2793
- data/src/main/java/processing/core/PShapeOBJ.java +415 -422
- data/src/main/java/processing/core/PShapeSVG.java +1466 -1475
- data/src/main/java/processing/core/PStyle.java +37 -40
- data/src/main/java/processing/core/PSurface.java +98 -103
- data/src/main/java/processing/core/PSurfaceNone.java +208 -236
- data/src/main/java/processing/core/PVector.java +961 -990
- data/src/main/java/processing/data/DoubleDict.java +709 -753
- data/src/main/java/processing/data/DoubleList.java +695 -748
- data/src/main/java/processing/data/FloatDict.java +702 -746
- data/src/main/java/processing/data/FloatList.java +697 -751
- data/src/main/java/processing/data/IntDict.java +673 -718
- data/src/main/java/processing/data/IntList.java +633 -699
- data/src/main/java/processing/data/JSONArray.java +873 -931
- data/src/main/java/processing/data/JSONObject.java +1165 -1262
- data/src/main/java/processing/data/JSONTokener.java +341 -351
- data/src/main/java/processing/data/LongDict.java +662 -707
- data/src/main/java/processing/data/LongList.java +634 -700
- data/src/main/java/processing/data/Sort.java +41 -37
- data/src/main/java/processing/data/StringDict.java +486 -522
- data/src/main/java/processing/data/StringList.java +580 -624
- data/src/main/java/processing/data/Table.java +3508 -3686
- data/src/main/java/processing/data/TableRow.java +183 -182
- data/src/main/java/processing/data/XML.java +883 -957
- data/src/main/java/processing/event/Event.java +66 -87
- data/src/main/java/processing/event/KeyEvent.java +41 -48
- data/src/main/java/processing/event/MouseEvent.java +93 -103
- data/src/main/java/processing/event/TouchEvent.java +6 -10
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +5 -69
- data/src/main/java/processing/javafx/PSurfaceFX.java +2 -7
- data/src/main/java/processing/opengl/FontTexture.java +270 -290
- data/src/main/java/processing/opengl/FrameBuffer.java +363 -375
- data/src/main/java/processing/opengl/LinePath.java +500 -543
- data/src/main/java/processing/opengl/LineStroker.java +582 -593
- data/src/main/java/processing/opengl/PGL.java +2881 -2904
- data/src/main/java/processing/opengl/PGraphics2D.java +315 -408
- data/src/main/java/processing/opengl/PGraphics3D.java +72 -107
- data/src/main/java/processing/opengl/PGraphicsOpenGL.java +12043 -12230
- data/src/main/java/processing/opengl/PJOGL.java +1681 -1745
- data/src/main/java/processing/opengl/PShader.java +1257 -1260
- data/src/main/java/processing/opengl/PShapeOpenGL.java +4599 -4662
- data/src/main/java/processing/opengl/PSurfaceJOGL.java +1030 -1047
- data/src/main/java/processing/opengl/Texture.java +1397 -1462
- data/src/main/java/processing/opengl/VertexBuffer.java +55 -57
- data/src/main/resources/icon/icon-1024.png +0 -0
- data/src/main/resources/icon/icon-128.png +0 -0
- data/src/main/resources/icon/icon-16.png +0 -0
- data/src/main/resources/icon/icon-256.png +0 -0
- data/src/main/resources/icon/icon-32.png +0 -0
- data/src/main/resources/icon/icon-48.png +0 -0
- data/src/main/resources/icon/icon-512.png +0 -0
- data/src/main/resources/icon/icon-64.png +0 -0
- data/vendors/Rakefile +1 -1
- metadata +12 -8
- data/src/main/java/processing/core/ThinkDifferent.java +0 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27e0f6d8547d0ab680c183052c93de07386e196ef645111564ad033172ccccbe
|
4
|
+
data.tar.gz: cc8cf473457ddfbe7e423e202276d209d629942b2d04bedfd07c577ca1fefb43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 501f170bf9899573c5085c292a0fe8796df82588dd74b2b07b80c8dda96498a7cbd26352fce2a8623a69b1ff0d4703bb265dcf55b81292efdbe3c52322100fc1
|
7
|
+
data.tar.gz: 4b8a78d2f4b924111b16a8269d922107f84f186465e5568972237944886bfcb2c23fa5178e5c2b8046aa559b74ea167932795c25a97849322ec9c991ab274a24
|
@@ -0,0 +1 @@
|
|
1
|
+
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,4 @@
|
|
1
|
-
**v3.
|
2
|
-
|
3
|
-
**v3.0.1.pre** Bump jruby version
|
4
|
-
|
5
|
-
**v3.0.0.pre** Compiled for java 11, works on linux, requires testing on MacOS and Windows
|
1
|
+
**v3.2** Now is the time for some serious refactoring for jdk11. Might even work on MacOS and Windows, ahead of vanilla processing.
|
6
2
|
|
7
3
|
**v2.9.1** Attempt to bring 64 bit Windows users to party. Use non versioned jogl/opengl jars from processing distro, including processing.org apple.jar in case it's needed, MacOS users are being very opaque on this.
|
8
4
|
|
data/README.md
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
# Propane
|
2
2
|
|
3
|
-
|
4
|
-
I am watching with interest progress made by @sampottinger on [vanilla processing][vanilla]. I have implemented a different solution for think different than @ssilverman in my jdk11 branch (but I don't know whether it works).
|
3
|
+
This version is intended to work with openjdk11+, @sampottinger is currently working on [vanilla processing][vanilla] which will enable JRubyArt to catch up.
|
5
4
|
|
6
|
-
A slim layer to communicate with Processing from JRuby, features
|
5
|
+
A slim layer to communicate with Processing from JRuby, features maven build. We have created a configuration free version of ruby processing, for processing-3.5+, where we include a modified processing core (`public runPropane()` to replace `protected runSketch()`. These jars are small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby. Currently JavaFX is unsupported again @sampottinger is currently working on [vanilla processing][vanilla] to use OpenJFX.
|
7
6
|
|
8
7
|
adjust above for your OS/distro setup.
|
9
8
|
|
10
9
|
## Requirements
|
11
10
|
|
12
|
-
- `jdk-11.0.
|
13
|
-
- `jruby-9.2.
|
11
|
+
- `jdk-11.0.2+`
|
12
|
+
- `jruby-9.2.7.0`
|
14
13
|
- `mvn-3.5.4+`
|
15
14
|
|
16
15
|
## Building and testing
|
@@ -22,16 +21,26 @@ rake javadoc
|
|
22
21
|
```
|
23
22
|
|
24
23
|
## Installation
|
24
|
+
|
25
25
|
```bash
|
26
|
-
jgem install
|
27
|
-
jgem install propane-3.
|
26
|
+
jgem install propane # from rubygems
|
27
|
+
jgem install propane-3.2.0-java.gem # local install
|
28
28
|
# Alternative
|
29
|
-
jruby -S gem install
|
30
|
-
jruby -S gem install propane-3.
|
29
|
+
jruby -S gem install propane # from rubygems
|
30
|
+
jruby -S gem install propane-3.2.0-java.gem # local install
|
31
|
+
```
|
32
|
+
|
33
|
+
## Check Install
|
34
|
+
To check version and confirm gem bin files are on your path (also checks JDK version)
|
35
|
+
|
36
|
+
```bash
|
37
|
+
propane --version
|
31
38
|
```
|
32
39
|
|
33
40
|
## Usage
|
34
41
|
|
42
|
+
A propane sketch:-
|
43
|
+
|
35
44
|
``` ruby
|
36
45
|
require 'propane'
|
37
46
|
|
@@ -53,8 +62,8 @@ end
|
|
53
62
|
FlashingLightsSketch.new
|
54
63
|
```
|
55
64
|
|
65
|
+
Create template sketches with the sketch creator tool
|
56
66
|
|
57
|
-
There is a handy sketch creator tool
|
58
67
|
```bash
|
59
68
|
propane -c my_sketch 200 200 # for default renderer
|
60
69
|
propane -c my_sketch 200 200 p2d # for opengl 2D renderer
|
@@ -66,18 +75,21 @@ To run sketches
|
|
66
75
|
```bash
|
67
76
|
jruby my_sketch.rb # or use script to run sketches from atom
|
68
77
|
```
|
78
|
+
|
69
79
|
To install the sound and video libraries `~/.propane/libraries`. Depends on wget.
|
70
80
|
```bash
|
71
81
|
propane --install sound
|
72
82
|
propane --install video
|
73
83
|
```
|
84
|
+
|
74
85
|
Other java libraries can be manually installed to the same folder (no need for processing ide)
|
75
86
|
|
76
87
|
See [gh-pages][gh-pages] for more detailed instructions and much more.
|
77
88
|
|
78
89
|
## Examples
|
79
90
|
|
80
|
-
[Worked Examples](https://github.com/ruby-processing/propane-examples) more to follow, feel free to add your own, especially ruby-2.
|
91
|
+
[Worked Examples](https://github.com/ruby-processing/propane-examples) more to follow, feel free to add your own, especially ruby-2.4
|
92
|
+
+ syntax now we can. To install the samples. The samples get copied to `~/propane_samples`. Depends on wget.
|
81
93
|
```bash
|
82
94
|
propane --install samples
|
83
95
|
```
|
@@ -86,4 +98,3 @@ propane --install samples
|
|
86
98
|
[building]:http://ruby-processing.github.io/building/building/
|
87
99
|
[gh-pages]:https://ruby-processing.github.io/propane/
|
88
100
|
[vanilla]:https://github.com/processing/processing/pull/5753
|
89
|
-
https://github.com/processing/processing/pull/5747
|
data/Rakefile
CHANGED
@@ -1,26 +1,37 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
require_relative 'lib/propane/version'
|
3
|
+
require 'erb'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
desc 'Create jar Manifest'
|
6
|
+
task :create_manifest do
|
7
|
+
manifest = ERB.new <<~MANIFEST
|
8
|
+
Implementation-Title: rpextras (java extension for propane)
|
9
|
+
Implementation-Version: <%= Propane::VERSION %>
|
10
|
+
Class-Path: gluegen-rt.jar jog-all.jar
|
11
|
+
MANIFEST
|
7
12
|
File.open('MANIFEST.MF', 'w') do |f|
|
8
|
-
f.puts(
|
9
|
-
f.puts(version)
|
10
|
-
f.puts('Class-Path: apple.jar gluegen-rt.jar jog-all.jar')
|
13
|
+
f.puts(manifest.result(binding))
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
14
17
|
task default: [:init, :compile, :install, :test, :gem]
|
15
18
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
+
# depends on installed processing, with processing on path
|
20
|
+
desc 'Create Manifest and Copy Jars'
|
21
|
+
task init: :create_manifest do
|
22
|
+
processing_root = File.dirname(`readlink -f $(which processing)`) # for Archlinux etc
|
23
|
+
# processing_root = File.join(ENV['HOME'], 'processing-3.5.3') # alternative for debian linux etc
|
24
|
+
jar_dir = File.join(processing_root, 'core', 'library')
|
25
|
+
opengl = Dir.entries(jar_dir).grep(/amd64|macosx-universal/)
|
26
|
+
opengl.concat %w[jogl-all.jar gluegen-rt.jar]
|
27
|
+
opengl.each do |gl|
|
28
|
+
FileUtils.cp(File.join(jar_dir, gl), File.join('.', 'lib'))
|
29
|
+
end
|
19
30
|
end
|
20
31
|
|
21
32
|
desc 'Install'
|
22
33
|
task :install do
|
23
|
-
sh
|
34
|
+
sh "mv target/propane-#{Propane::VERSION}.jar lib"
|
24
35
|
end
|
25
36
|
|
26
37
|
desc 'Gem'
|
@@ -55,8 +66,8 @@ end
|
|
55
66
|
|
56
67
|
desc 'clean'
|
57
68
|
task :clean do
|
58
|
-
Dir[
|
59
|
-
puts
|
69
|
+
Dir["./**/*.{jar,gem}"].each do |path|
|
70
|
+
puts "Deleting #{path} ..."
|
60
71
|
File.delete(path)
|
61
72
|
end
|
62
73
|
FileUtils.rm_rf('./target')
|
data/lib/propane/runner.rb
CHANGED
@@ -67,10 +67,22 @@ module Propane
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def show_version
|
70
|
+
|
70
71
|
v_format = "Propane version %s\nJRuby version %s"
|
71
72
|
puts format(v_format, Propane::VERSION, JRUBY_VERSION)
|
72
73
|
end
|
73
74
|
|
75
|
+
def show_version
|
76
|
+
require 'erb'
|
77
|
+
require_relative 'helpers/version_error'
|
78
|
+
raise JDKVersionError.new if ENV_JAVA['java.specification.version'] < '11'
|
79
|
+
template = ERB.new <<-EOF
|
80
|
+
propane version <%= Propane::VERSION %>
|
81
|
+
JRuby version <%= JRUBY_VERSION %>
|
82
|
+
EOF
|
83
|
+
puts template.result(binding)
|
84
|
+
end
|
85
|
+
|
74
86
|
def install(library)
|
75
87
|
choice = library.downcase
|
76
88
|
valid = Regexp.union('samples', 'sound', 'video', 'glvideo')
|
data/lib/propane/version.rb
CHANGED
data/library/slider/slider.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
# Here's a little library for quickly hooking up in sketch sliders.
|
3
|
-
# Copyright (c) 2016-
|
3
|
+
# Copyright (c) 2016-19 Martin Prout.
|
4
4
|
|
5
5
|
java_import 'monkstone.slider.CustomHorizontalSlider'
|
6
6
|
java_import 'monkstone.slider.CustomVerticalSlider'
|
data/mvnw
ADDED
@@ -0,0 +1,234 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# ----------------------------------------------------------------------------
|
3
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
4
|
+
# or more contributor license agreements. See the NOTICE file
|
5
|
+
# distributed with this work for additional information
|
6
|
+
# regarding copyright ownership. The ASF licenses this file
|
7
|
+
# to you under the Apache License, Version 2.0 (the
|
8
|
+
# "License"); you may not use this file except in compliance
|
9
|
+
# with the License. You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
# ----------------------------------------------------------------------------
|
20
|
+
|
21
|
+
# ----------------------------------------------------------------------------
|
22
|
+
# Maven2 Start Up Batch script
|
23
|
+
#
|
24
|
+
# Required ENV vars:
|
25
|
+
# ------------------
|
26
|
+
# JAVA_HOME - location of a JDK home dir
|
27
|
+
#
|
28
|
+
# Optional ENV vars
|
29
|
+
# -----------------
|
30
|
+
# M2_HOME - location of maven2's installed home dir
|
31
|
+
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
32
|
+
# e.g. to debug Maven itself, use
|
33
|
+
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
34
|
+
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
35
|
+
# ----------------------------------------------------------------------------
|
36
|
+
|
37
|
+
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
38
|
+
|
39
|
+
if [ -f /etc/mavenrc ] ; then
|
40
|
+
. /etc/mavenrc
|
41
|
+
fi
|
42
|
+
|
43
|
+
if [ -f "$HOME/.mavenrc" ] ; then
|
44
|
+
. "$HOME/.mavenrc"
|
45
|
+
fi
|
46
|
+
|
47
|
+
fi
|
48
|
+
|
49
|
+
# OS specific support. $var _must_ be set to either true or false.
|
50
|
+
cygwin=false;
|
51
|
+
darwin=false;
|
52
|
+
mingw=false
|
53
|
+
case "`uname`" in
|
54
|
+
CYGWIN*) cygwin=true ;;
|
55
|
+
MINGW*) mingw=true;;
|
56
|
+
Darwin*) darwin=true
|
57
|
+
#
|
58
|
+
# Look for the Apple JDKs first to preserve the existing behaviour, and then look
|
59
|
+
# for the new JDKs provided by Oracle.
|
60
|
+
#
|
61
|
+
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
|
62
|
+
#
|
63
|
+
# Apple JDKs
|
64
|
+
#
|
65
|
+
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
|
66
|
+
fi
|
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
|
+
;;
|
89
|
+
esac
|
90
|
+
|
91
|
+
if [ -z "$JAVA_HOME" ] ; then
|
92
|
+
if [ -r /etc/gentoo-release ] ; then
|
93
|
+
JAVA_HOME=`java-config --jre-home`
|
94
|
+
fi
|
95
|
+
fi
|
96
|
+
|
97
|
+
if [ -z "$M2_HOME" ] ; then
|
98
|
+
## resolve links - $0 may be a link to maven's home
|
99
|
+
PRG="$0"
|
100
|
+
|
101
|
+
# need this for relative symlinks
|
102
|
+
while [ -h "$PRG" ] ; do
|
103
|
+
ls=`ls -ld "$PRG"`
|
104
|
+
link=`expr "$ls" : '.*-> \(.*\)$'`
|
105
|
+
if expr "$link" : '/.*' > /dev/null; then
|
106
|
+
PRG="$link"
|
107
|
+
else
|
108
|
+
PRG="`dirname "$PRG"`/$link"
|
109
|
+
fi
|
110
|
+
done
|
111
|
+
|
112
|
+
saveddir=`pwd`
|
113
|
+
|
114
|
+
M2_HOME=`dirname "$PRG"`/..
|
115
|
+
|
116
|
+
# make it fully qualified
|
117
|
+
M2_HOME=`cd "$M2_HOME" && pwd`
|
118
|
+
|
119
|
+
cd "$saveddir"
|
120
|
+
# echo Using m2 at $M2_HOME
|
121
|
+
fi
|
122
|
+
|
123
|
+
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
124
|
+
if $cygwin ; then
|
125
|
+
[ -n "$M2_HOME" ] &&
|
126
|
+
M2_HOME=`cygpath --unix "$M2_HOME"`
|
127
|
+
[ -n "$JAVA_HOME" ] &&
|
128
|
+
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
129
|
+
[ -n "$CLASSPATH" ] &&
|
130
|
+
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
131
|
+
fi
|
132
|
+
|
133
|
+
# For Migwn, ensure paths are in UNIX format before anything is touched
|
134
|
+
if $mingw ; then
|
135
|
+
[ -n "$M2_HOME" ] &&
|
136
|
+
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
137
|
+
[ -n "$JAVA_HOME" ] &&
|
138
|
+
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
139
|
+
# TODO classpath?
|
140
|
+
fi
|
141
|
+
|
142
|
+
if [ -z "$JAVA_HOME" ]; then
|
143
|
+
javaExecutable="`which javac`"
|
144
|
+
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
145
|
+
# readlink(1) is not available as standard on Solaris 10.
|
146
|
+
readLink=`which readlink`
|
147
|
+
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
148
|
+
if $darwin ; then
|
149
|
+
javaHome="`dirname \"$javaExecutable\"`"
|
150
|
+
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
151
|
+
else
|
152
|
+
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
153
|
+
fi
|
154
|
+
javaHome="`dirname \"$javaExecutable\"`"
|
155
|
+
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
156
|
+
JAVA_HOME="$javaHome"
|
157
|
+
export JAVA_HOME
|
158
|
+
fi
|
159
|
+
fi
|
160
|
+
fi
|
161
|
+
|
162
|
+
if [ -z "$JAVACMD" ] ; then
|
163
|
+
if [ -n "$JAVA_HOME" ] ; then
|
164
|
+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
165
|
+
# IBM's JDK on AIX uses strange locations for the executables
|
166
|
+
JAVACMD="$JAVA_HOME/jre/sh/java"
|
167
|
+
else
|
168
|
+
JAVACMD="$JAVA_HOME/bin/java"
|
169
|
+
fi
|
170
|
+
else
|
171
|
+
JAVACMD="`which java`"
|
172
|
+
fi
|
173
|
+
fi
|
174
|
+
|
175
|
+
if [ ! -x "$JAVACMD" ] ; then
|
176
|
+
echo "Error: JAVA_HOME is not defined correctly." >&2
|
177
|
+
echo " We cannot execute $JAVACMD" >&2
|
178
|
+
exit 1
|
179
|
+
fi
|
180
|
+
|
181
|
+
if [ -z "$JAVA_HOME" ] ; then
|
182
|
+
echo "Warning: JAVA_HOME environment variable is not set."
|
183
|
+
fi
|
184
|
+
|
185
|
+
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
186
|
+
|
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
|
+
# traverses directory structure from process work directory to filesystem root
|
198
|
+
# first directory with .mvn subdirectory is considered project base directory
|
199
|
+
find_maven_basedir() {
|
200
|
+
local basedir=$(pwd)
|
201
|
+
local wdir=$(pwd)
|
202
|
+
while [ "$wdir" != '/' ] ; do
|
203
|
+
if [ -d "$wdir"/.mvn ] ; then
|
204
|
+
basedir=$wdir
|
205
|
+
break
|
206
|
+
fi
|
207
|
+
wdir=$(cd "$wdir/.."; pwd)
|
208
|
+
done
|
209
|
+
echo "${basedir}"
|
210
|
+
}
|
211
|
+
|
212
|
+
# concatenates all lines of a file
|
213
|
+
concat_lines() {
|
214
|
+
if [ -f "$1" ]; then
|
215
|
+
echo "$(tr -s '\n' ' ' < "$1")"
|
216
|
+
fi
|
217
|
+
}
|
218
|
+
|
219
|
+
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
|
220
|
+
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
221
|
+
|
222
|
+
# Provide a "standardized" way to retrieve the CLI args that will
|
223
|
+
# work with both Windows and non-Windows executions.
|
224
|
+
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
225
|
+
export MAVEN_CMD_LINE_ARGS
|
226
|
+
|
227
|
+
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
228
|
+
|
229
|
+
exec "$JAVACMD" \
|
230
|
+
$MAVEN_OPTS \
|
231
|
+
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
232
|
+
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
233
|
+
${WRAPPER_LAUNCHER} $MAVEN_CMD_LINE_ARGS
|
234
|
+
|