JK2 module for AOLserver

2002-11-19 Thread Alexander Leyke
Hello!

I am working on a JK2 module for AOLserver and would like to receive 
feedback on JNI and compiler issues I encountered. My environment is 
Solaris 7, AOLserver 3.4 and Tomcat 4.1.12. Issues:

1) Can't use JNI worker. AOLserver follows single-process, 
multi-threaded architectural model and its native scripting language is 
Tcl. Executing servlets in-process would help to bridge a gap between 
Java and Tcl and so is an important motivation in this project. My 
module loads JVM and initializes Tomcat in-process, but then I encounter 
2 conditions:

"ajp13" worker factory seems to be hardcoded regardless of actual worker 
type. Here is a snippet from JTC-4.1.12/jk/native2/common/jk_workerEnv.c:

static int jk2_workerEnv_addChannel(jk_env_t *env, jk_workerEnv_t *wEnv,
   jk_channel_t *ch)
{
   ...
   /* Automatically create the ajp13 worker to be used with this channel.
*/
   jkb=env->createBean2(env, ch->mbean->pool, "ajp13", 
ch->mbean->localName );
   ...
}

I changed the code above to use "ajp13" or "worker.jni" depending on 
ch->mbean->localName , but that still didn't help, because 
jk2_jni_worker_service function in 
JTC-4.1.12/jk/native2/common/jk_worker_jni.c is a placeholder. I did 
make sure not to use default "lb" worker for JNI.

Is JNI worker intentionally disabled, or am I misinterpreting the code? 
I could fix jk2_jni_worker_service function with some guidance, but is 
there a similar implementation gap in Tomcat 4 Java classes?

2) JTC build doesn't seem to be very friendly for non-GNU compilers. I 
use Sun Workshop, and had to write some hacks to make ant and libtool 
work with Sun's C compiler. In particular, both ant and libtool insisted 
on supplying invalid "-W" command option to compiler. I suspect that 
JTC-4.1.12/jk/jkant/java/org/apache/jk/ant/compilers/CcCompiler.java is 
intended for UCB cc support, and I need to write a separate class for 
ant to work with Sun's cc and bypass libtool (which configured itself 
mostly correctly to use Sun cc, but still insisted on "-W"). Had anyone 
had any relevant experience?

Thanks very much!

Alex Leykekh
Sr. Software Engineer, AOL Digital City


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



Re: JK2 module for AOLserver

2002-11-19 Thread Alexander Leyke
Costin Manolache wrote:


In jk2 we use ajp13 for all channels, including JNI. That allows us to reuse
the buffers and avoid object allocations from C - which improves a lot the 
performance of the code ( we also avoid a lot of expensive calls, etc ).
Same technique is also used (AFAIK) in mozilla bridge.

 

Do you mean "ajp13" channel would work with in-process worker?


Is JNI worker intentionally disabled, or am I misinterpreting the code?
I could fix jk2_jni_worker_service function with some guidance, but is
there a similar implementation gap in Tomcat 4 Java classes?
   


Yes, the jni worker shouldn't be used.

 

Let me rephrase my initial question. I am interested in Tomcat executing 
in-process. If JNI worker cannot be used, what alternative do I have to 
run Tomcat in-process? Is JNI worker permanently out or will be 
re-enabled in the future (what's the timetable?)

In case I am out-of luck with in-process Tomcat , what is the highest 
performance alternative for a Web server to talk to Tomcat 4?

Thanks for your help!
Alex


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



Re: JK2 module for AOLserver

2002-11-20 Thread Alexander Leyke
Thanks for the reply, Costin. There are some more questions below.

Costin Manolache wrote:


Ajp13 protocol ( marshalling, etc ) is used for in-process communication
and out of process communication. By marshalling the data we avoid some
expensive and complex JNI operations, and benefit of all optimizations 
done on java side ( and the code is simpler ).

The worker_jni code is just used to start tomcat in-process, but not
for request forwarding. 

The JNI channel is special because it is single-threaded ( a doors channel
will use the same type of code ), and that has some implications in
how the request is processed - but the data encoding is the same.
 

Does it mean that in-process worker is a performance bottleneck in 
single-process server?

The JNI worker is working for IIS and Apache2, I see no reason why it won't 
work with AOLserver. ( I suppose you're aware of the jk1 AOLserver connector 
- it also used JNI, so you shouldn't have any major problems )

I am aware of nstomcat module which works with Tomcat 3, but not Tomcat 
4. There is  nothing of that nature  under 
jakarta-tomcat-connectors-4.1.12-src/jk/native. Should I look better?


Just get the socket to work ( it's easier to debug the server-specific 
code), then enable the jni channel and worker.
 

OK, as I am working on it, there are some Java errors from Tomcat 
startup within AOLserver. I can repeat those errors when running 
TomcatStarter class from shell command line.

::
stderr.log
::
TomcatStarter: main()
Try  org.apache.tomcat.startup.Main
Try  org.apache.catalina.startup.BootstrapService
Starting org.apache.catalina.startup.BootstrapService
java.lang.NullPointerException
   at 
org.apache.catalina.startup.BootstrapService.start(BootstrapService.java:244)
   at 
org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:307)
   at java.lang.reflect.Method.invoke(Native Method)
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:127)
   at java.lang.Thread.run(Thread.java:484)
Created catalinaLoader in: //jakarta-tomcat-4.1.12/server/lib
[INFO] Registry - -Loading registry information
[INFO] Registry - -Creating new Registry instance
[INFO] Registry - -Creating MBeanServer
[INFO] Http11Protocol - -Initializing Coyote HTTP/1.1 on port 8089
java.lang.ArrayIndexOutOfBoundsException
   at 
org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:305)
   at java.lang.reflect.Method.invoke(Native Method)
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:127)
   at java.lang.Thread.run(Thread.java:484)
java.lang.ArrayIndexOutOfBoundsException
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:131)
   at java.lang.Thread.run(Thread.java:484)
::
stdout.log
::
Bootstrap: Starting service
TomcatStarter: Done
TomcatStarter: Done

Your help is always appreciated,
Alex


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



Re: JK2 module for AOLserver

2002-11-21 Thread Alexander Leyke


Costin Manolache wrote:


In jk2, all those strings are eliminated ( from C side ), we also eliminate
the buffer allocation ( we reuse the same jbyteArray and C array, with
code to eventually support NIO - that cuts 2 memcpy and few other small
things ). We also reduce the number of JNI calls to a minimum ( or almost ).

Regarding the single-threaded behavior - I think this is a major benefit
for JNI ( or doors ) workers, since it can avoid thread switching and a lot
of synchronization. In all other protocol there are 2 threads sending data
to each other. This won't be visible for a small number of RPS, but 
I expect it to be important for very high loads. Well - most likely this
is just a benchmarking exercise - if the servlets are doing anything usefull
they'll dominate the execution time anyway, the connector overhead is 
already extremely small.

 

Ah! I understand now what you meant by "single-threaded". It does sound 
like a better option.

You just need to port the nstomcat module to jk2. 

jk1 doesn't support tomcat4 in-process, jk2 does. From the connector
point of view it doesn't matter what tomcat is run ( at one point
it even detected the tomcat version at runtime - all it cares is to
have coyote/jk2 available and have a class with main() ).

 

Exactly what I am doing. I have all AOLserver JK2 C code (simingly!) in 
place, and after fixing some things in workers2/jk2.properties I can see 
the worker attempt to communicate with AJP connector on port 8009:

jk_channel_socket.c:328:channelSocket.open() connect failed 
localhost:8009 146 Connection refused

I think above is due to Tomcat failing to initialize properly when 
in-process. It does listen on 8009 when I launch it from command line.

Did you get the connector to work with sockets ? ( i.e tomcat out
of process ) ? That's the first step, you need this to work well
to test the aol-specific code. 
 

Yes. Works perfectly well, leaves nothing suspicious in the logs.


You can configure a different starter ( TomcatStarter did work 
with an older version of BootstrapService - now you can't use
the 4.1 version of BS without daemon ). You can probably try
to just configure it to use o.a.catalina.startup.Bootstrap.
( or a different starter with a main() )
 

I see o.a.jk.apr.TomcatStarter.main() call 
o.a.catalina.startup.BootstrapService.main(). I didn't think of changing 
the bootstrap class. I see the followin "candidates":

org/apache/catalina/startup/Bootstrap.class
org/apache/catalina/startup/BootstrapService.class
org/apache/catalina/startup/CatalinaService.class
org/apache/catalina/startup/Catalina.class
org/apache/catalina/startup/Embedded.class

Unfortunately the link to Catalina Javadocs off is broken on the 
jakarta.apache.org Website. I'll browse through the Java sources, 
butwould be helpful if anyone could mention which bootstrap class I 
could use in place of TomcatStarter

A related question - what does this log entry mean? I think it is 
related to [worker.jni:onShutdown] entry in workers2.properties.

jk_worker_jni.c:369:jni.init() disabling the non init hook worker

Thanks,
Alex


::
stderr.log
::
TomcatStarter: main()
Try  org.apache.tomcat.startup.Main
Try  org.apache.catalina.startup.BootstrapService
Starting org.apache.catalina.startup.BootstrapService
java.lang.NullPointerException
   at org.apache.catalina.startup.BootstrapService.start(BootstrapService.java:244)
   

   at org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:307)
   

   at java.lang.reflect.Method.invoke(Native Method)
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:127)
   at java.lang.Thread.run(Thread.java:484)
Created catalinaLoader in: /
AL>/jakarta-tomcat-4.1.12/server/lib
[INFO] Registry - -Loading registry information
[INFO] Registry - -Creating new Registry instance
[INFO] Registry - -Creating MBeanServer
[INFO] Http11Protocol - -Initializing Coyote HTTP/1.1 on port 8089
java.lang.ArrayIndexOutOfBoundsException
   at org.apache.catalina.startup.BootstrapService.main(BootstrapService.java:305)
   

   at java.lang.reflect.Method.invoke(Native Method)
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:127)
   at java.lang.Thread.run(Thread.java:484)
java.lang.ArrayIndexOutOfBoundsException
   at org.apache.jk.apr.TomcatStarter.run(TomcatStarter.java:131)
   at java.lang.Thread.run(Thread.java:484)
::
stdout.log
::
Bootstrap: Starting service
TomcatStarter: Done
TomcatStarter: Done
   


 



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: JK2 module for AOLserver

2002-11-21 Thread Alexander Leyke
Costin Manolache wrote:


I used BootstrapService because it didn't create the 8005 shutdown
socket. My tests were done with 4.0. 
You can create your own wrapper, use CatalinaService directly or
call Bootstrap ( if you don't mind 8005 - in your case it doesn't
matter too much since you'll have a single process ).
 

Bootstrap just worked for me . Comments in 
BootstrapService.java suggest it is for Win32. Are you testing on NT? I 
am still getting Java exceptions and for some reason javac doesn't want 
to compile (it cannot find "modern" compiler and is looking for 
"classic"), but JSP I had compiled before are running.

 

A related question - what does this log entry mean? I think it is
related to [worker.jni:onShutdown] entry in workers2.properties.

jk_worker_jni.c:369:jni.init() disabling the non init hook worker
   


I have no idea. Ask Mladen :-) 

I know he added special code to allow multiple classes to be called
on startup, init, shutdown, etc. There are several ways to 
load the java class. 

Since you see the messages from TomcatStarter - I assume it's 
harmless.

 

I saw the code which sends the message. Looks like it just disables 
hooks that don't belong to startup, init, or close phase. I am not sure 
what implications it has.

Thanks!
Alex


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



Re: JK2 module for AOLserver

2002-11-22 Thread Alexander Leyke


Costin Manolache wrote:


Are you using the jni channel ? Is that working too ? 
 

No, it is the default ajp13 channel. I think I told you about my doubts 
about jk_workerEnv.c hardcoding "ajp13" as the type for all channel 
initialization. Anyway, this is how the code looks like now (let me know 
if I am missing the point here). Would the code I have commented out use 
jni channel?

static int jk2_workerEnv_addChannel(jk_env_t *env, jk_workerEnv_t *wEnv,
   jk_channel_t *ch)
{
   ...
   /* Automatically create the ajp13 worker to be used with this channel.
*/
   jkb=env->createBean2(env, ch->mbean->pool, "ajp13", 
ch->mbean->localName );

   /* AL - attempt to change to different channel

   if (strcmp (ch->mbean->localName, "jni") == 0)
   factype = "worker.jni";
   else
   factype = "ajp13";

   */
   ...


Regarding jsp - it uses ant to compile, so you may want to set a 
system property to specify the compiler ( you can do it in the worker
config ). I use "build.compiler=jikes" :-)
 

Not sure how the things are related to ant. Standalone Tomcat compiles 
JSP perfectly well, so I think this is related to runtime environment, 
some option missing from in-process environment. Isn't ant used strictly 
at build time, and JSP compile done by Tomcat translating things to Java 
and then calling JVM to compile into bytecode?

You can have hooks for startup, init, or close - but the only one that
matters ( in most cases ) is the one that loads main().
 

I think there is a 4th phase, shutdown. What does servlet spec say about 
shutdown, is there a way to register a "shutdown" servlet - loosing that 
capability may not be the best thing. I do see slightly different 
behavior now - there is a "Service shutting down" message from Tomcat, 
but AOLserver shutdown messages are missing. It could be bugs in my 
code, I know I forgot to initialize JVM in separate thread (has to do 
with AOLserver disabling signals in main thread, and JVM depending on 
them to do garbage collection).

Thank you,
Alex


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



JVM Error

2003-01-27 Thread Alexander Leyke
Hello,

I work on JK2 family module for AOLserver and use JNI to communicate 
with Tomcat, so the JVM is running inside the Web server process. I 
experience a problem with JVM 1.3.1 on Solaris 2.7/E250 and wonder if 
anyone else has encountered a similar issue. It manifests itself as JVM 
crashing, writing a message to the tune "HotSpot Virtual Machine 
Error/Cannot obtain thread information" and dumping core due to SIGSEGV. 
It appears that I can reproduce the error by launching AOLserver with 
JVM in-process, executing a couple of requests and then letting the 
server sit idle for about 10 minutes. Subsequent request to Tomcat has a 
good chance of crashing the server.

Examining core in dbx reveals that SEGV always happens in AOLserver 
request thread, bound to JVM by virtue of using a JNI channel. I can 
trace the signal to a C++ method, Thread* 
ThreadLocalStorage::get_thread_via_cache(), local to libjvm.so 
(debugging data is available if anyone is interested). What could be 
causing this problem and how can I correct it?

I also see a SEGV during JVM initialization. JVM establishes signal 
handlers to trap and absorb signals, so this one doesn't cause any 
visible damage. I detect it in dbx and truss, and it seems to originate 
in JRE library libnet.so evaluating equivalent of C expression *(int*)0. 
I am puzzled because it looks like intentional dereference of NULL pointer.

Your help is appreciated!
Alex


Typical problem report for the crash:

Unexpected Signal : 11 occurred at PC=0xfdcbc5c4
Function name=JVM_Clone
Library=/opt/java/jre/lib/sparc/server/libjvm.so

Cannot obtain thread information

Dynamic libraries:
0x1 bin/nsd
0xff38  /usr/lib/libsocket.so.1
0xff28  /usr/lib/libnsl.so.1
0xff3a  /usr/lib/libdl.so.1
0xff35  /usr/lib/librt.so.1
0xff24  /usr/lib/libthread.so.1
0xff20  /usr/lib/libresolv.so.2
0xff1d  /usr/lib/libm.so.1
0xff10  /usr/lib/libc.so.1
0xff0e  /usr/lib/libmp.so.2
0xff0c  /usr/lib/libaio.so.1
0xff33  /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
0xff03  /home/aleykekh/aolserver-3.4-opt/bin/nssock.so
0xfe7e  /home/aleykekh/aolserver-3.4-opt/bin/nslog.so
0xfe7c  /home/aleykekh/aolserver-3.4-opt/bin/nscgi.so
0xfe75  /home/aleykekh/newtomcat/jakarta-tomcat-connectors-4.1.12-src/jk/build/jk2/aolserver/libnsjk2.so
0xfe70  /home/aleykekh/newtomcat/apache2/lib/libapr-0.so.0
0xfe6c  /home/aleykekh/newtomcat/apache2/lib/libaprutil-0.so.0
0xfe68  /usr/local/lib/libexpat.so.0
0xfdc0  /opt/java/jre/lib/sparc/server/libjvm.so
0xfe65  /usr/lib/libCrun.so.1
0xff05  /usr/lib/libw.so.1
0xfe61  /export/0/j2se-1.3.1/jre/lib/sparc/native_threads/libhpi.so
0xfe3d  /export/0/j2se-1.3.1/jre/lib/sparc/libverify.so
0xfe39  /export/0/j2se-1.3.1/jre/lib/sparc/libjava.so
0xfe35  /export/0/j2se-1.3.1/jre/lib/sparc/libzip.so
0xfe31  /usr/lib/nss_files.so.1
0xfe5e  /home/aleykekh/aolserver-3.4-opt/bin/nscp.so
0xfa7e  /export/0/j2se-1.3.1/jre/lib/sparc/libnet.so

Local Time = Fri Jan 24 16:28:43 2003
Elapsed Time = 992
#
# HotSpot Virtual Machine Error : 11
# Error ID : 4F530E43505002CC 01
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#


The "Function name" at the top of report varies, eg., 
JVM_GetMethodIxArgsSize, JVM_RawMonitorEnter.



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



JVM Error

2003-01-28 Thread Alexander Leyke


I've seen similar problems - java is very sensitive to each thread
beeing 'registered'. My understanding is that attaching the
thread will set all the TLDs that are needed, and jk2 is calling the 
attach method - so I don't know what is wrong here.
My bet would be on thread creation - I would add some printf with the
TID serving the request ( before attaching the thread ). One thing that
may happen in 10 minutes is the thread management code adding or removing
threads. 

Costin
 

Right, something like that. The deepest I can debug is jk2_vm_attach 
function in jk_vm_default.c module. The function makes a call to JNI's 
GetEnv method, and if result indicates the thread is not attached, calls 
AttachCurrentThread. Well, I see Web server create a brand new thread, 
and GetEnv returns an environment pointer for it... This is obviously 
wrong and causes a problem later when JK2 attempts to call a static 
method in Tomcat.
I thought GetEnv may be broken somehow and altered the code so Attach 
always happens. No luck either - this time access violation happens in 
AttachCurrentThread and stack backtrace looks like this:

jk2_vm_attach(env = 0x1cc220, jkvm = 0x224fc0)
jni_AttachCurrentThread(0xfe0a0338, 0x580f00, 0x0, 0xfe092000, 
0xee171668, 0x0)
Thread::initialize_thread_local_storage(0x580f00, 0x6, 0x580f00, 0x0, 
0x0, 0x0)
ThreadLocalStorage::set_thread(0xfe092000, 0x580f00, 0x580f00, 
0xee17156c, 0x0, 0x0)
report_fatal(0x42, 0xfe092000, 0xfe0482a8, 0xee171, 0xfe092000, 0xee1714ac)
report_error(0xd4, 0xee170b7c, 0x42, 0xfe028208, 0xfe0ffddc, 0xfe092000)
Thread::print(0x580f00, 0xfe092000, 0x1e8, 0xee170, 0xfe092000, 0xee1702ec)
os::get_priority(0x580f00, 0xee1702ec, 0xfe092000, 0xee17033c, 
0x7fff, 0xfe092000)
os::get_native_priority(0x580f00, 0xee170284, 0x0, 0xee170b50, 0x79, 
0xee170357)

The offending thread doesn't seem to differ in any way (e.g., stack 
size, priority attributes) from previous Web server request thread which 
successfully attached itself to JVM. Am I missing some step here?

Thanks,
Alex


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



JSP @include directive

2003-02-18 Thread Alexander Leyke
Hi,

I need to use include directive in JSP that points to file physically 
located outside directory tree for Web application context. I tested two 
forms of include directive: <%@include file="/../inc/name.inc" %> and 
<%@include file="/symlink/name.inc" %>.

As far as I can tell from Tomcat 4.1.18 sources the former is forbidden, 
i.e., cannot specify path that goes beyond application context. The 
latter is OK, as long as 
org.apache.naming.resources.FileDirContext.setAllowLinking() has been 
called with true argument. Symlinks are disallowed by default and I 
don't see any place in the code where setAllowLinking method gets 
called. Sounds like a problem to me.

Please tell me if above behavior is erroneous, and how can I cope with 
this situation.
Thank you,
Alex


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



JSP @include directive

2003-02-19 Thread Alexander Leyke
I must be doing something wrong, Resources doesn't work for me. Perhaps someone can point out the problem.

I need to include a file from outside of my webapp's directory tree using directive:
<%@ include file="inc/foo.inc" %>

For that purpose I defined Resources element like this:

  


In theory I should see Tomcat opening "$CATALINA_HOME"/webapps/inc/foo.inc, 
but it goes for "$CATALINA_HOME"/webapps/myapp/inc/foo.inc.

What am I doing wrong?
Alex


Alexander Leyke wrote:
Hi,

I need to use include directive in JSP that points to file physically 
located outside directory tree for Web application context. I tested two 
forms of include directive: <%@include file="/../inc/name.inc" %> and 
<%@include file="/symlink/name.inc" %>.

As far as I can tell from Tomcat 4.1.18 sources the former is forbidden, 
i.e., cannot specify path that goes beyond application context. The 
latter is OK, as long as 
org.apache.naming.resources.FileDirContext.setAllowLinking() has been 
called with true argument.

You have to use a Resources element for that to be called.

Remy




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




JK2 for AOLserver 4.0

2003-03-10 Thread Alexander Leyke
Hello,

I am a developer at AOL and have been recently working on a JK2 family 
module for AOLserver. The module is ready now and I'd like to take steps 
necessary to contribute the sources to Tomcat project. I read the 
guidelines for contribution, but still am a bit confused about the 
process, e.g.,
-- should I formulate proposal to a PMC?
-- do I need write permission to CVS to make the submission or posting 
an archive with instructions to tomcat-dev list is the way to go?
-- how do I interact with Decision Makers should the code manifest any 
deficiency?

Please advise.

In the meantime, some details about this software
Name: nsjk2 (libnsjk2.so)
Versions: Tomcat 4.1.18, AOLserver 4.0(beta)
Tested on OS: Solaris 2.7
Compiles under: Forte 6, GCC
Functional Summary:
-- adds support for Java Servlets and JSP to AOLserver environment;
-- supports virtual servers
-- when Tomcat runs in-process and talks with JK2 via JNI channel, Java 
servlets can access "native" dynamic content mechanism (ADP) and 
evaluate Tcl scripts or include ADP pages.

Source files affected:

jakarta-tomcat-connectors-src/jk/build.properties
jtc-src/jk/native2/build.xml
jtc-src/jk/native2/server (adds aolserver directory with C and Java sources)
Thank you,
Alexander Leykekh
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


JK2 module for AOLserver

2003-03-13 Thread Alexander Leyke
Hello,

Please find attached archive with sources for nsjk2 module. The module 
targets AOLserver 4.0 beta 3 or later. The archive structure is rooted 
at jakarta-tomcat-connectors-4.1.18-src, and one can extract files 
directly into the JTC-4.1.18 sources. I have successfully built nsjk2 on 
Solaris 2.7, with gcc 2.95.2 or Forte Tools 6.

I look forward for any kind of input from reviewers.
Thank you,
Alex


nsjk2-4.1.18-src.tar.gz
Description: GNU Zip compressed data
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

JK2 module for AOLserver

2003-03-26 Thread Alexander Leyke
Hi,

A question about enhancement adoption process - how long does it 
typically take for new code to show up in CVS, in nightly builds? What 
is the verification process for new code? I have posted enhancement 
request to the mailing list and to Bugzilla 
(http://issues.apache.org/bugzilla/show_bug.cgi?id=18283).

Thanks,
Alex
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]