rjb 1.3.1-universal-darwin-10 → 1.3.3-universal-darwin-10
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.
- data/ChangeLog +18 -0
- data/ext/load.c +23 -8
- data/ext/rjb.c +2 -2
- data/lib/rjbcore.bundle +0 -0
- data/test/test_osxjvm.rb +23 -0
- metadata +3 -2
data/ChangeLog
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
Wed Nov 17 arton
|
2
|
+
*ext/rjb.c
|
3
|
+
RJV_VERSION -> 1.3.3
|
4
|
+
*ext/load.c
|
5
|
+
Check JAVA_HOME before load JVM (OS X specific)
|
6
|
+
change int -> size_t for 64bit OS
|
7
|
+
*test/test_osxjvm.rb
|
8
|
+
add new test for OS X specific JVM detection.
|
9
|
+
Sat Oct 30 arton
|
10
|
+
*ext/rjb.c
|
11
|
+
RJB_VERSION -> 1.3.2
|
12
|
+
*extconf.rb
|
13
|
+
Change OSX's include path detecting
|
14
|
+
Tue Oct 26 arton
|
15
|
+
*ext/rjb.c
|
16
|
+
RJB_VERSION -> 1.3.1
|
17
|
+
*rjb.rake
|
18
|
+
make universal-darwin gem for Mac bundled ruby.
|
1
19
|
Sun Oct 24 arton
|
2
20
|
*sample/filechooser.rb
|
3
21
|
omit Thread use (cause JVM crush with 1.9 and StackOverflow with 1.8)
|
data/ext/load.c
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: load.c
|
15
|
+
* $Id: load.c 159 2010-11-16 16:35:49Z arton $
|
16
16
|
*/
|
17
17
|
|
18
18
|
#include <stdlib.h>
|
@@ -131,10 +131,21 @@ static int open_jvm(char* libpath)
|
|
131
131
|
#endif
|
132
132
|
return 1;
|
133
133
|
}
|
134
|
+
|
135
|
+
#if defined(__APPLE__) && defined(__MACH__)
|
136
|
+
static int file_exist(const char* dir, const char* file)
|
137
|
+
{
|
138
|
+
VALUE path = rb_funcall(rb_cFile, rb_intern("join"), 2,
|
139
|
+
rb_str_new2(dir), rb_str_new2(file));
|
140
|
+
VALUE ret = rb_funcall(rb_cFile, rb_intern("exist?"), 1, path);
|
141
|
+
return RTEST(ret);
|
142
|
+
}
|
143
|
+
#endif
|
144
|
+
|
134
145
|
/*
|
135
146
|
* not completed, only valid under some circumstances.
|
136
147
|
*/
|
137
|
-
static int load_jvm(char* jvmtype)
|
148
|
+
static int load_jvm(const char* jvmtype)
|
138
149
|
{
|
139
150
|
char* libpath;
|
140
151
|
char* java_home;
|
@@ -150,7 +161,7 @@ static int load_jvm(char* jvmtype)
|
|
150
161
|
{
|
151
162
|
if (strlen(jh) > HOME_NAME_LEN)
|
152
163
|
{
|
153
|
-
|
164
|
+
size_t len = strlen(jh);
|
154
165
|
char* p = ALLOCA_N(char, len + 8);
|
155
166
|
jh = strcpy(p, jh);
|
156
167
|
if (*(jh + len - 1) == '/')
|
@@ -163,6 +174,10 @@ static int load_jvm(char* jvmtype)
|
|
163
174
|
strcpy(p + len, "/..");
|
164
175
|
}
|
165
176
|
}
|
177
|
+
if (!jvmtype && !file_exist(jh, "JavaVM"))
|
178
|
+
{
|
179
|
+
jh = DEFAULT_HOME;
|
180
|
+
}
|
166
181
|
}
|
167
182
|
#endif
|
168
183
|
if (!jh)
|
@@ -208,7 +223,7 @@ static int load_bridge(JNIEnv* jenv)
|
|
208
223
|
JNINativeMethod nmethod[1];
|
209
224
|
jbyte buff[8192];
|
210
225
|
char* bridge;
|
211
|
-
|
226
|
+
size_t len;
|
212
227
|
FILE* f;
|
213
228
|
#if defined(RUBINIUS)
|
214
229
|
VALUE v = rb_const_get(rb_cObject, rb_intern("RjbConf"));
|
@@ -268,12 +283,12 @@ int rjb_create_jvm(JNIEnv** pjenv, JavaVMInitArgs* vm_args, char* userpath, VALU
|
|
268
283
|
{ "DUMMY", NULL }, /* for classpath count */
|
269
284
|
};
|
270
285
|
char* newpath;
|
271
|
-
|
286
|
+
size_t len;
|
272
287
|
int result;
|
273
288
|
GETDEFAULTJAVAVMINITARGS initargs;
|
274
289
|
CREATEJAVAVM createjavavm;
|
275
290
|
JavaVMOption* options;
|
276
|
-
|
291
|
+
size_t optlen;
|
277
292
|
int i;
|
278
293
|
VALUE optval;
|
279
294
|
|
@@ -292,7 +307,7 @@ int rjb_create_jvm(JNIEnv** pjenv, JavaVMInitArgs* vm_args, char* userpath, VALU
|
|
292
307
|
if (libjvm == NULL || !open_jvm(libjvm))
|
293
308
|
{
|
294
309
|
#if defined(__APPLE__) && defined(__MACH__)
|
295
|
-
if (!(load_jvm(
|
310
|
+
if (!(load_jvm(NULL)))
|
296
311
|
{
|
297
312
|
JVMDLL = "%s/Libraries/libjvm.dylib";
|
298
313
|
CREATEJVM = "JNI_CreateJavaVM_Impl";
|
@@ -359,7 +374,7 @@ int rjb_create_jvm(JNIEnv** pjenv, JavaVMInitArgs* vm_args, char* userpath, VALU
|
|
359
374
|
(options + i)->optionString = StringValueCStr(optval);
|
360
375
|
(options + i)->extraInfo = NULL;
|
361
376
|
}
|
362
|
-
vm_args->nOptions = optlen;
|
377
|
+
vm_args->nOptions = (int)optlen;
|
363
378
|
vm_args->options = options;
|
364
379
|
vm_args->ignoreUnrecognized = JNI_TRUE;
|
365
380
|
if (NIL_P(createjavavmfunc))
|
data/ext/rjb.c
CHANGED
@@ -12,10 +12,10 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: rjb.c
|
15
|
+
* $Id: rjb.c 159 2010-11-16 16:35:49Z arton $
|
16
16
|
*/
|
17
17
|
|
18
|
-
#define RJB_VERSION "1.3.
|
18
|
+
#define RJB_VERSION "1.3.3"
|
19
19
|
|
20
20
|
#include "ruby.h"
|
21
21
|
#include "extconf.h"
|
data/lib/rjbcore.bundle
CHANGED
Binary file
|
data/test/test_osxjvm.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/local/env ruby -Ku
|
2
|
+
# encoding: utf-8
|
3
|
+
# $Id:$
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'rjb'
|
7
|
+
rescue LoadError
|
8
|
+
require 'rubygems'
|
9
|
+
require 'rjb'
|
10
|
+
end
|
11
|
+
require 'test/unit'
|
12
|
+
|
13
|
+
if RUBY_PLATFORM =~ /darwin/
|
14
|
+
class TestOsxJvm < Test::Unit::TestCase
|
15
|
+
def test_with_javahome
|
16
|
+
ENV['JAVA_HOME'] = `/usr/libexec/java_home`
|
17
|
+
assert_nothing_raised do
|
18
|
+
Rjb::load
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rjb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: universal-darwin-10
|
6
6
|
authors:
|
7
7
|
- arton
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-11-17 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- test/exttest.rb
|
43
43
|
- test/gctest.rb
|
44
44
|
- test/test.rb
|
45
|
+
- test/test_osxjvm.rb
|
45
46
|
- test/jp/co/infoseek/hp/arton/rjb/IBase.class
|
46
47
|
- test/jp/co/infoseek/hp/arton/rjb/Test$TestTypes.class
|
47
48
|
- test/jp/co/infoseek/hp/arton/rjb/Test.class
|