Patrick Luby <[EMAIL PROTECTED]> wrote:
> Pier,
>
> Pier Fumagalli wrote:
>>
>> IMO, it's a waste of time... You shouldn't call setuid from Java, but the
>> native code launching the VM should call appropriate methods at appropriate
>> moments of the lifecycle... As I said before:
>>
>> 1) CreateJavaVM
>> 2) call Tomcat->initialize() (bind to ports)
>> 3) set uid/euid/gid/egid/groups
>> 4) call Tomcat->start() (accept connections)
>> 5) wait for signal
>> 6) call Tomcat->stop()
>> 7) exit process...
>>
>> All the code is already in place... Just need to be tied together...
>
> I agree. I got your sample code to work on Mac OS X 10.1 and, just for kicks,
> had Java invoke the callback that was registered.
Save files, ./make.sh, ./testjni :)
> Since you have separated out the port binding into Tomcat->initialize(), you
> are
> also correct that I don't need to call the callback function from Java. I
> admit
> my thinking was still limited to the existing constraints of the
> StandardServer.start() method instead of the new bootstrap classes.
No, there should be a bootstrap already separating the entry points...
> Next thing I will do is take a look at the bootstrap classes and test out your
> recommendation.
Great :)
>> RegisterNative _is_ JNI... JNI is developed on two layers, call C from Java
>> (maybe using System.loadLibrary()), and that's what everyone knows.
>>
>> Call Java from C (a little bit less known, but way more powerful)...
>>
>> We need a JVM invocation API, not a Java callback mechanism, IMO...
>
> We used the JVM invocation API when I was working on StarOffice. However, I
> never ran into the RegisterNative method. Although we don't need it for the
> setuid() calls, I think it might come in handy sometime.
RegisterNatives is "gold", it's actually what it does at the end of
System.loadLibrary, going to analyze the exported functions from a DSO,
translating names, and calling it... See the JVM sources...
>> That's the beauty of JNI, you can do things that you won't even believe they
>> exist, like "compiling" (loading) a class when NOT all its methods are
>> there... It's the beauty of a Class seen as an Instance of an object (and
>> IMO the biggest advantage over things like SmallTalk)... JG thought it out
>> good...
>
> I admit that I kept expecting there to be more work to do. But you keep
> surprising me with what you have already implemented. Thanks for having the
> patience to walk me through this.
People were saying that I didn't do s*** while I was at Sun... I did
_something_, I just never had the chance to wrap it up (priorities were
changing from time to time)...
Pier
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>