Skip to content

Commit 763a753

Browse files
committed
Start of work to make Nailgun a viable option for running JRuby:
* Build in NG java stuff by default * Include tool/nailgun in bin dist * Merge jruby-ng and jruby-ng-server functionality into main jruby script
1 parent 6ebc3ce commit 763a753

6 files changed

Lines changed: 26 additions & 234 deletions

File tree

bin/jruby

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ JAVA_VM=-client
128128
declare -a java_args
129129
declare -a ruby_args
130130

131+
java_class=org.jruby.Main
132+
131133
# Force file.encoding to UTF-8 when on Mac, since Apple JDK defaults to MacRoman (JRUBY-3576)
132134
if $darwin; then
133135
java_args=("${java_args[@]}" "-Dfile.encoding=UTF-8")
@@ -204,6 +206,14 @@ do
204206
java_args=("${java_args[@]}" "-Djruby.compat.version=RUBY1_9") ;;
205207
--1.8)
206208
java_args=("${java_args[@]}" "-Djruby.compat.version=RUBY1_8") ;;
209+
--ng-server)
210+
# Start up as Nailgun server
211+
java_class=com.martiansoftware.nailgun.NGServer
212+
JAVA_VM=-server
213+
VERIFY_JRUBY=true ;;
214+
--ng)
215+
# Use native Nailgun client to toss commands to server
216+
nailgun_client=true ;;
207217
# Abort processing on the double dash
208218
--) break ;;
209219
# Other opts go to ruby
@@ -263,6 +273,14 @@ if $cygwin; then
263273
JAVA_OPTS="$JAVA_OPTS -Djline.terminal=jline.UnixTerminal"
264274
fi
265275

276+
if [ "$nailgun_client" != "" ]; then
277+
if [ -f $JRUBY_HOME/tool/nailgun/ng ]; then
278+
exec $JRUBY_HOME/tool/nailgun/ng org.jruby.util.NailMain $JRUBY_OPTS "$@"
279+
else
280+
echo "error: ng executable not found; run 'make' in tool/nailgun"
281+
exit 1
282+
fi
283+
else
266284
if [ "$VERIFY_JRUBY" != "" ]; then
267285
if [ "$PROFILE_ARGS" != "" ]; then
268286
echo "Running with instrumented profiler"
@@ -272,7 +290,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
272290
"-Djruby.home=$JRUBY_HOME" \
273291
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
274292
"-Djruby.shell=$JRUBY_SHELL" \
275-
org.jruby.Main $JRUBY_OPTS "$@"
293+
$java_class $JRUBY_OPTS "$@"
276294

277295
# Record the exit status immediately, or it will be overridden.
278296
JRUBY_STATUS=$?
@@ -295,7 +313,7 @@ else
295313
"-Djruby.home=$JRUBY_HOME" \
296314
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
297315
"-Djruby.shell=$JRUBY_SHELL" \
298-
org.jruby.Main $JRUBY_OPTS "$@"
316+
$java_class $JRUBY_OPTS "$@"
299317

300318
# Record the exit status immediately, or it will be overridden.
301319
JRUBY_STATUS=$?
@@ -308,9 +326,10 @@ else
308326
"-Djruby.home=$JRUBY_HOME" \
309327
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
310328
"-Djruby.shell=$JRUBY_SHELL" \
311-
org.jruby.Main $JRUBY_OPTS "$@"
329+
$java_class $JRUBY_OPTS "$@"
312330
fi
313331
fi
332+
fi
314333

315334
# Be careful adding code down here, you might override the exit
316335
# status of the jruby invocation.

bin/jruby-ng

Lines changed: 0 additions & 49 deletions
This file was deleted.

bin/jruby-ng-server

Lines changed: 0 additions & 144 deletions
This file was deleted.

build.xml

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@
239239
<zipfileset src="${build.lib.dir}/joda-time-1.5.1.jar"/>
240240
<zipfileset src="${build.lib.dir}/dynalang-0.3.jar"/>
241241
<zipfileset src="${build.lib.dir}/yydebug.jar"/>
242+
<zipfileset src="${build.lib.dir}/nailgun-0.7.1.jar"/>
242243
<manifest>
243244
<attribute name="Built-By" value="${user.name}"/>
244245
<attribute name="Main-Class" value="org.jruby.Main"/>
@@ -273,6 +274,7 @@
273274
<zipfileset src="${build.lib.dir}/joda-time-1.5.1.jar"/>
274275
<zipfileset src="${build.lib.dir}/dynalang-0.3.jar"/>
275276
<zipfileset src="${build.lib.dir}/yydebug.jar"/>
277+
<zipfileset src="${build.lib.dir}/nailgun-0.7.1.jar"/>
276278
<manifest>
277279
<attribute name="Built-By" value="${user.name}"/>
278280
<attribute name="Main-Class" value="org.jruby.Main"/>
@@ -358,6 +360,7 @@
358360
<zipfileset src="${build.lib.dir}/joda-time-1.5.1.jar"/>
359361
<zipfileset src="${build.lib.dir}/dynalang-0.3.jar"/>
360362
<zipfileset src="${build.lib.dir}/yydebug.jar"/>
363+
<zipfileset src="${build.lib.dir}/nailgun-0.7.1.jar"/>
361364
<manifest>
362365
<attribute name="Built-By" value="${user.name}"/>
363366
<attribute name="Main-Class" value="${mainclass}"/>
@@ -1092,6 +1095,7 @@
10921095
<exclude name="docs/rdocs.tar.gz"/>
10931096
<exclude name="bench/**"/>
10941097
<include name="share/**"/>
1098+
<include name="tool/nailgun/**"/>
10951099
</patternset>
10961100

10971101
<patternset id="dist.src.files">
@@ -1281,44 +1285,6 @@
12811285
<target name="jruby-nailgun" depends="generate-method-classes,build-ng"
12821286
description="Set up JRuby to be run with Nailgun (jruby-ng, jruby-ng-server)">
12831287
<mkdir dir="${build.dir}/nailmain"/>
1284-
<javac srcdir="${nailgun.home}/src/java" destdir="${build.dir}/nailmain"
1285-
classpath="${nailgun.home}/nailgun-0.7.1.jar:${jruby.classes.dir}" debug="true"
1286-
source="${javac.version}" target="${javac.version}"
1287-
deprecation="true" encoding="UTF-8" />
1288-
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
1289-
classpath="${build.lib.dir}/jarjar-1.0rc8.jar"/>
1290-
<jarjar destfile="${nailgun.home}/jruby-nailgun.jar">
1291-
<fileset dir="${jruby.classes.dir}">
1292-
<exclude name="org/jruby/util/ant/**/*.class"/>
1293-
</fileset>
1294-
<fileset dir="${build.dir}/nailmain"/>
1295-
<zipfileset src="${build.lib.dir}/asm-3.1.jar"/>
1296-
<zipfileset src="${build.lib.dir}/asm-commons-3.1.jar"/>
1297-
<zipfileset src="${build.lib.dir}/asm-util-3.1.jar"/>
1298-
<zipfileset src="${build.lib.dir}/asm-analysis-3.1.jar"/>
1299-
<zipfileset src="${build.lib.dir}/asm-tree-3.1.jar"/>
1300-
<zipfileset src="${build.lib.dir}/bytelist.jar"/>
1301-
<zipfileset src="${build.lib.dir}/constantine.jar"/>
1302-
<zipfileset src="${build.lib.dir}/jvyamlb-0.2.5.jar"/>
1303-
<zipfileset src="${build.lib.dir}/jline-0.9.93.jar"/>
1304-
<zipfileset src="${build.lib.dir}/jcodings.jar"/>
1305-
<zipfileset src="${build.lib.dir}/joni.jar"/>
1306-
<zipfileset src="${build.lib.dir}/jna-posix.jar"/>
1307-
<zipfileset src="${build.lib.dir}/jna.jar"/>
1308-
<zipfileset src="${build.lib.dir}/jffi.jar"/>
1309-
<zipfileset src="${build.lib.dir}/jffi-i386-Linux.jar"/>
1310-
<zipfileset src="${build.lib.dir}/jffi-Darwin.jar"/>
1311-
<zipfileset src="${build.lib.dir}/jffi-x86-SunOS.jar"/>
1312-
<zipfileset src="${build.lib.dir}/jffi-amd64-SunOS.jar"/>
1313-
<zipfileset src="${build.lib.dir}/joda-time-1.5.1.jar"/>
1314-
<zipfileset src="${nailgun.home}/nailgun-0.7.1.jar"/>
1315-
<zipfileset src="${build.lib.dir}/yydebug.jar"/>
1316-
<rule pattern="org.objectweb.asm.**" result="jruby.objectweb.asm.@1"/>
1317-
<manifest>
1318-
<attribute name="Built-By" value="${user.name}"/>
1319-
<attribute name="Main-Class" value="org.jruby.Main"/>
1320-
</manifest>
1321-
</jarjar>
13221288
</target>
13231289

13241290
<target name="fetch-rails">
File renamed without changes.

0 commit comments

Comments
 (0)