Re: cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
[EMAIL PROTECTED] wrote: billbarker2004/01/26 22:43:18 Modified:jk/java/org/apache/jk/common ChannelSocket.java JniHandler.java jk/java/org/apache/jk/core JkHandler.java jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Adding support for the new pause/resume protocol. You beat me to it. Thanks :) Rémy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
billbarker2004/01/26 22:43:18 Modified:jk/java/org/apache/jk/common ChannelSocket.java JniHandler.java jk/java/org/apache/jk/core JkHandler.java jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Adding support for the new pause/resume protocol. Revision ChangesPath 1.39 +55 -15 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java Index: ChannelSocket.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- ChannelSocket.java16 Jan 2004 06:48:20 - 1.38 +++ ChannelSocket.java27 Jan 2004 06:43:18 - 1.39 @@ -277,13 +277,38 @@ /* */ ServerSocket sSocket; -int socketNote=1; -int isNote=2; -int osNote=3; -int notifNote=4; +final int socketNote=1; +final int isNote=2; +final int osNote=3; +final int notifNote=4; +boolean paused = false; + +public void pause() throws Exception { +synchronized(this) { +paused = true; +unLockSocket(); +} +} + +public void resume() throws Exception { +synchronized(this) { +paused = false; +notify(); +} +} + public void accept( MsgContext ep ) throws IOException { if( sSocket==null ) return; +synchronized(this) { +while(paused) { +try{ +wait(); +} catch(InterruptedException ie) { +//Ignore, since can't happen +} +} +} Socket s=sSocket.accept(); ep.setNote( socketNote, s ); if(log.isDebugEnabled() ) @@ -412,6 +437,20 @@ s.close(); } +private void unLockSocket() throws IOException { + // Need to create a connection to unlock the accept(); + Socket s; + if (inet == null) { + s=new Socket(127.0.0.1, port ); + }else{ + s=new Socket(inet, port ); + // setting soLinger to a small value will help shutdown the + // connection quicker + s.setSoLinger(true, 0); + } + s.close(); +} + public void destroy() throws IOException { running = false; try { @@ -420,17 +459,10 @@ return; tp.shutdown(); -// Need to create a connection to unlock the accept(); -Socket s; -if (inet == null) { -s=new Socket(127.0.0.1, port ); -}else{ -s=new Socket(inet, port ); -// setting soLinger to a small value will help shutdown the -// connection quicker -s.setSoLinger(true, 0); -} -s.close(); + if(!paused) { + unLockSocket(); + } + sSocket.close(); // XXX? if( tpOName != null ) { @@ -575,6 +607,11 @@ log.debug(Accepting ajp connections on + port); while( running ) { try { +synchronized(this) { +while(paused) { +wait(); +} +} MsgContext ep=new MsgContext(); ep.setSource(this); ep.setWorkerEnv( wEnv ); @@ -600,6 +637,9 @@ try { MsgAjp recv=new MsgAjp(); while( running ) { +if(paused) { // Drop the connection on pause +break; +} int status= this.receive( recv, ep ); if( status = 0 ) { if( status==-3) 1.14 +25 -0 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JniHandler.java Index: JniHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JniHandler.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- JniHandler.java 18 Sep 2003 16:21:00 - 1.13 +++ JniHandler.java 27 Jan 2004 06:43:18 - 1.14 @@ -103,6 +103,7 @@ public static final int MSG_NOTE=0; public static final int C2B_NOTE=1; public static final int MB_NOTE=2; +private boolean paused = false; public JniHandler() { @@ -177,11 +178,35 @@ msg.appendByteChunk( bc ); } +
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
billbarker2003/09/01 17:17:40 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Adding accessors so that the JkCoyote connectors can play nice with the admin webapp. Revision ChangesPath 1.43 +6 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- JkCoyoteHandler.java 30 Jul 2003 02:25:53 - 1.42 +++ JkCoyoteHandler.java 2 Sep 2003 00:17:40 - 1.43 @@ -132,9 +132,13 @@ if( value instanceof String ) this.setProperty( name, (String)value ); } - + +/** + * Retrieve config info. + * Primarily for use with the admin webapp. + */ public Object getAttribute( String name ) { -return null; +return getJkMain().getProperty(name); } /** The adapter, used to call the connector 1.41 +14 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- JkMain.java 2 Jul 2003 06:30:23 - 1.40 +++ JkMain.java 2 Sep 2003 00:17:40 - 1.41 @@ -188,7 +188,20 @@ saveProperties(); } } - +/** + * Retrieve a property. + */ +public Object getProperty(String name) { +String alias = (String)replacements.get(name); +Object result = null; +if(alias != null) { +result = props.get(alias); +} +if(result == null) { +result = props.get(name); +} +return result; +} /** * Set the codechannelClassName/code that will used to connect to * httpd. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 2003/01/20 15:48:40 Modified:jk/java/org/apache/jk/common HandlerRequest.java jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Few updates for RequestInfo. Revision ChangesPath 1.22 +13 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java Index: HandlerRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- HandlerRequest.java 16 Jan 2003 22:13:37 - 1.21 +++ HandlerRequest.java 20 Jan 2003 23:48:40 - 1.22 @@ -411,22 +411,33 @@ } static int count=0; +RequestGroupInfo global=null; private int decodeRequest( Msg msg, MsgContext ep, MessageBytes tmpMB ) throws IOException { // FORWARD_REQUEST handler Request req=(Request)ep.getRequest(); +req.setStartTime(System.currentTimeMillis()); if( req==null ) { req=new Request(); Response res=new Response(); req.setResponse(res); ep.setRequest( req ); -RequestProcessor rp=new RequestProcessor(req); if( this.getDomain() != null ) { try { +if( global==null ) { +global=new RequestGroupInfo(); +Registry.getRegistry().registerComponent( global, +getDomain(), GlobalRequestProcessor, +type=GlobalRequestProcessor,name=jk); +} + +RequestInfo rp=req.getRequestProcessor(); +rp.setGlobalProcessor(global); Registry.getRegistry().registerComponent( rp, -getDomain(), RequestProcessor, name=Request + count++ ); +getDomain(), RequestProcessor, +type=RequestProcessor,name=JkRequest + count++ ); } catch( Exception ex ) { log.warn(Error registering request); } 1.35 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- JkCoyoteHandler.java 20 Jan 2003 19:20:32 - 1.34 +++ JkCoyoteHandler.java 20 Jan 2003 23:48:40 - 1.35 @@ -456,7 +456,7 @@ { // XXX Can we have multiple JkMain ? Registry.getRegistry().registerComponent(jkMain, name.getDomain(), -JkMain, name=JkMain); +JkMain, type=JkHandler,name=JkMain); return super.preRegister(server, name); } } 1.34 +4 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- JkMain.java 16 Jan 2003 22:17:37 - 1.33 +++ JkMain.java 20 Jan 2003 23:48:40 - 1.34 @@ -513,6 +513,9 @@ String fullName=name; String localName=; String propName=; +// ignore +if( name.startsWith(key.)) return; + int dot=name.indexOf(.); int lastDot=name.lastIndexOf(.); if( dot 0 ) { @@ -564,7 +567,7 @@ } if( this.domain != null ) { try { -Registry.getRegistry().registerComponent(handler, this.domain, JkHandler, +Registry.getRegistry().registerComponent(handler, this.domain, classN, type=JkHandler,name= + fullName); } catch (Exception e) { log.error( Error registering + fullName, e ); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 2003/01/16 14:17:37 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: When the coyote handler is registered ( by the Connector or other method ), it'll also register JkMain. JkMain will register all handlers as mbeans. If the coyote handler is not registered - nothing happens. Revision ChangesPath 1.33 +16 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- JkCoyoteHandler.java 18 Dec 2002 09:15:06 - 1.32 +++ JkCoyoteHandler.java 16 Jan 2003 22:17:37 - 1.33 @@ -74,8 +74,14 @@ import org.apache.tomcat.util.net.SSLSupport; import org.apache.coyote.*; +import org.apache.commons.modeler.Registry; +import javax.management.ObjectName; +import javax.management.MBeanServer; /** Plugs Jk2 into Coyote + * + * @jmx:notification-handler name=org.apache.jk.SEND_PACKET + * @jmx:notification-handler name=org.apache.coyote.ACTION_COMMIT */ public class JkCoyoteHandler extends JkHandler implements ProtocolHandler, @@ -302,8 +308,7 @@ if( contentLanguage != null ) { headers.setValue(Content-Language).setString(contentLanguage); } - -int contentLength = res.getContentLength(); + int contentLength = res.getContentLength(); if( contentLength = 0 ) { headers.setValue(Content-Length).setInt(contentLength); } @@ -441,5 +446,14 @@ logTime.debug(Time pre= + t1 + / service= + t2 + + res.getContentLength() + + uri ); +} + +public ObjectName preRegister(MBeanServer server, + ObjectName name) throws Exception +{ +// XXX Can we have multiple JkMain ? +Registry.getRegistry().registerComponent(jkMain, name.getDomain(), +JkMain, name=JkMain); +return super.preRegister(server, name); } } 1.33 +48 -8 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- JkMain.java 13 Nov 2002 00:19:00 - 1.32 +++ JkMain.java 16 Jan 2003 22:17:37 - 1.33 @@ -60,15 +60,15 @@ package org.apache.jk.server; import java.io.*; -import java.net.*; import java.util.*; import org.apache.jk.core.*; -import org.apache.jk.common.*; -import org.apache.tomcat.util.buf.*; -import org.apache.tomcat.util.http.*; import org.apache.tomcat.util.IntrospectionUtils; +import org.apache.commons.modeler.Registry; +import javax.management.ObjectName; +import javax.management.MBeanServer; +import javax.management.MBeanRegistration; /** Main class used to startup and configure jk. It manages the conf/jk2.properties file * and is the target of JMX proxy. @@ -102,8 +102,9 @@ * to see configs based on registry, LDAP, db, etc. ( XML is not necesarily better ) * * @author Costin Manolache + * @deprecated Will be replaced with JMX operations */ -public class JkMain +public class JkMain implements MBeanRegistration { WorkerEnv wEnv=new WorkerEnv(); String propFile; @@ -113,7 +114,7 @@ boolean modified=false; boolean started=false; boolean saveProperties=false; - + public JkMain() { JkMain.jkMain=this; @@ -122,6 +123,7 @@ modules.put(channelJni, org.apache.jk.common.ChannelJni); modules.put(apr, org.apache.jk.apr.AprImpl); modules.put(mx, org.apache.jk.common.JkMX); +modules.put(modeler, org.apache.jk.common.JkModeler); modules.put(shm, org.apache.jk.common.Shm); modules.put(request,org.apache.jk.common.HandlerRequest); modules.put(container,org.apache.jk.common.HandlerRequest); @@ -150,7 +152,7 @@ ex.printStackTrace(); } } - + // Setting /** Load a .properties file into and set the values @@ -223,7 +225,7 @@ public String getJkHome() { return wEnv.getJkHome(); } - + String out; String err; File propsF; @@ -560,7 +562,15 @@ log.error( Can't create + fullName, ex ); return null;
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 02/04/25 16:13:24 Modified:jk/java/org/apache/jk/common ChannelSocket.java ChannelUn.java JniHandler.java jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Fewer messages, more info. We can remove even more - but I would like to keep at least one line for each endpoint that is listening. Revision ChangesPath 1.11 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java Index: ChannelSocket.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ChannelSocket.java23 Apr 2002 16:25:04 - 1.10 +++ ChannelSocket.java25 Apr 2002 23:13:24 - 1.11 @@ -214,7 +214,7 @@ log.error(Can't find free port + startPort + + maxPort ); return; } -log.info(Init + port ); +log.info(JK: listening on tcp port + port ); // If this is not the base port and we are the 'main' channleSocket and // SHM didn't already set the localId - we'll set the instance id 1.17 +2 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java Index: ChannelUn.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- ChannelUn.java25 Apr 2002 22:04:00 - 1.16 +++ ChannelUn.java25 Apr 2002 23:13:24 - 1.17 @@ -128,7 +128,7 @@ public void init() throws IOException { apr=(AprImpl)wEnv.getHandler(apr); if( apr==null || ! apr.isLoaded() ) { -log.error(Apr is not available, disabling unix channel ); +log.debug(Apr is not available, disabling unix channel ); apr=null; return; } @@ -163,7 +163,7 @@ if (unixListenSocket0) throw(new IOException(Cannot create listening socket + file)); -log.info(Listening on unix socket: + file ); +log.info(JK: listening on unix socket: + file ); // Run a thread that will accept connections. tp.start(); 1.3 +3 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JniHandler.java Index: JniHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JniHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JniHandler.java 25 Apr 2002 22:44:23 - 1.2 +++ JniHandler.java 25 Apr 2002 23:13:24 - 1.3 @@ -114,7 +114,8 @@ protected void initNative(String nativeComponentName) { apr=(AprImpl)wEnv.getHandler(apr); if( apr==null || ! apr.isLoaded() ) { -log.error(No apr, disabling jni proxy ); +if( log.isDebugEnabled() ) +log.debug(No apr, disabling jni proxy ); apr=null; return; } @@ -126,7 +127,7 @@ log.info(Component not found, creating it + nativeComponentName ); nativeJkHandlerP=apr.createJkHandler(xEnv, nativeComponentName); } -log.info(Native proxy + nativeJkHandlerP ); +log.debug(Native proxy + nativeJkHandlerP ); apr.releaseJkEnv(xEnv); } 1.18 +2 -3 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- JkCoyoteHandler.java 25 Apr 2002 18:27:18 - 1.17 +++ JkCoyoteHandler.java 25 Apr 2002 23:13:24 - 1.18 @@ -94,7 +94,8 @@ protected JkMain jkMain=new JkMain(); public void setProperty( String name, String value ) { -log.info(setProperty + name + + value ); +if( log.isDebugEnabled()) +log.debug(setProperty + name + + value ); jkMain.setProperty( name, value ); properties.put( name, value ); } @@ -139,8 +140,6 @@ jkMain.init(); jkMain.start(); - -log.info(Jk2 started ); headersMsgNote=wEnv.getNoteId( WorkerEnv.ENDPOINT_NOTE, headerMsg );
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 02/04/24 12:45:09 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Potential fix for 8478. Check if the response has been already commited, and don't recommit. Display a small info notice - COMMIT action shouldn't be called twice or after the first chunk. Revision ChangesPath 1.15 +39 -36 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- JkCoyoteHandler.java 23 Apr 2002 08:11:05 - 1.14 +++ JkCoyoteHandler.java 24 Apr 2002 19:45:09 - 1.15 @@ -239,47 +239,50 @@ if( actionCode==ActionCode.ACTION_COMMIT ) { org.apache.coyote.Response res=(org.apache.coyote.Response)param; -if( log.isInfoEnabled() ) -log.info(COMMIT sending headers + res + + res.getMimeHeaders() ); - - -C2BConverter c2b=(C2BConverter)res.getNote( utfC2bNote ); -if( c2b==null ) { -c2b=new C2BConverter( UTF8 ); -res.setNote( utfC2bNote, c2b ); -} - -MsgContext ep=(MsgContext)res.getNote( epNote ); -MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote ); -msg.reset(); -msg.appendByte(HandlerRequest.JK_AJP13_SEND_HEADERS); -msg.appendInt( res.getStatus() ); - -// s-b conversion, message -msg.appendBytes( null ); - -// XXX add headers - -MimeHeaders headers=res.getMimeHeaders(); -int numHeaders = headers.size(); -msg.appendInt(numHeaders); -for( int i=0; inumHeaders; i++ ) { -MessageBytes hN=headers.getName(i); -// no header to sc conversion - there's little benefit -// on this direction -c2b.convert ( hN ); -msg.appendBytes( hN ); +if( res.isCommited() ) { +if( log.isInfoEnabled() ) +log.info(Response already commited ); +} else { +if( log.isInfoEnabled() ) +log.info(COMMIT sending headers + res + + res.getMimeHeaders() ); + +C2BConverter c2b=(C2BConverter)res.getNote( utfC2bNote ); +if( c2b==null ) { +c2b=new C2BConverter( UTF8 ); +res.setNote( utfC2bNote, c2b ); +} + +MsgContext ep=(MsgContext)res.getNote( epNote ); +MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote ); +msg.reset(); +msg.appendByte(HandlerRequest.JK_AJP13_SEND_HEADERS); +msg.appendInt( res.getStatus() ); + +// s-b conversion, message +msg.appendBytes( null ); -MessageBytes hV=headers.getValue(i); -c2b.convert( hV ); -msg.appendBytes( hV ); +// XXX add headers + +MimeHeaders headers=res.getMimeHeaders(); +int numHeaders = headers.size(); +msg.appendInt(numHeaders); +for( int i=0; inumHeaders; i++ ) { +MessageBytes hN=headers.getName(i); +// no header to sc conversion - there's little benefit +// on this direction +c2b.convert ( hN ); +msg.appendBytes( hN ); + +MessageBytes hV=headers.getValue(i); +c2b.convert( hV ); +msg.appendBytes( hV ); +} +ep.setType( JkHandler.HANDLE_SEND_PACKET ); +ep.getSource().invoke( msg, ep ); } -ep.setType( JkHandler.HANDLE_SEND_PACKET ); -ep.getSource().invoke( msg, ep ); } else if( actionCode==ActionCode.ACTION_RESET ) { if( log.isInfoEnabled() ) log.info(RESET ); - } else
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 02/04/22 12:03:34 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Fix the shutdown for jk2. Revision ChangesPath 1.12 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- JkCoyoteHandler.java 17 Apr 2002 22:39:26 - 1.11 +++ JkCoyoteHandler.java 22 Apr 2002 19:03:34 - 1.12 @@ -155,7 +155,7 @@ } public void destroy() { -// jkMain.stop(); +jkMain.stop(); } // OutputBuffer implementation 1.21 +18 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- JkMain.java 18 Apr 2002 19:13:02 - 1.20 +++ JkMain.java 22 Apr 2002 19:03:34 - 1.21 @@ -230,7 +230,24 @@ shm, request, container, - channelSocket}; + channelSocket, + channelJni, + channelUn}; + +public void stop() +{ +for( int i=0; iwEnv.getHandlerCount(); i++ ) { +if( wEnv.getHandler(i) != null ) { +try { +wEnv.getHandler(i).destroy(); +} catch( IOException ex) { +log.error(Error stoping + wEnv.getHandler(i).getName(), ex); +} +} +} + +started=false; +} public void start() throws IOException { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 02/04/10 13:43:41 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Few tweaks, pass attributes to jk components, etc. Revision ChangesPath 1.9 +12 -7 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- JkCoyoteHandler.java 9 Apr 2002 20:51:06 - 1.8 +++ JkCoyoteHandler.java 10 Apr 2002 20:43:41 - 1.9 @@ -97,6 +97,8 @@ */ public void setAttribute( String name, Object value ) { log.info(setAttribute + name + + value ); +if( value instanceof String ) +jkMain.setProperty( name, (String)value ); } public Object getAttribute( String name ) { @@ -260,13 +262,11 @@ msg.appendBytes( hV ); } ep.getChannel().send( msg, ep ); -} -if( actionCode==ActionCode.ACTION_RESET ) { +} else if( actionCode==ActionCode.ACTION_RESET ) { if( log.isInfoEnabled() ) log.info(RESET ); -} -if( actionCode==ActionCode.ACTION_CLOSE ) { +} else if( actionCode==ActionCode.ACTION_CLOSE ) { if( log.isInfoEnabled() ) log.info(CLOSE ); org.apache.coyote.Response res=(org.apache.coyote.Response)param; @@ -278,11 +278,16 @@ msg.appendInt( 1 ); ep.getChannel().send(msg, ep ); -} -if( actionCode==ActionCode.ACTION_ACK ) { +} else if( actionCode==ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) { + + +} else if( actionCode==ActionCode.ACTION_REQ_HOST_ATTRIBUTE ) { + + +} else if( actionCode==ActionCode.ACTION_ACK ) { if( log.isInfoEnabled() ) log.info(ACK ); - +// What should we do here ? Who calls it ? } } catch( Exception ex ) { log.error( Error in action code , ex ); 1.13 +3 -5 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- JkMain.java 20 Feb 2002 23:43:43 - 1.12 +++ JkMain.java 10 Apr 2002 20:43:41 - 1.13 @@ -70,10 +70,9 @@ import org.apache.tomcat.util.http.*; import org.apache.tomcat.util.IntrospectionUtils; -/** Main class used for testing jk core and common code and tunning. +/** Main class used to startup jk. * - * It'll just start/init jk and use a dummy endpoint ( i.e. no servlet - * container ). + * It is also useable standalone for testing or as a minimal socket server. */ public class JkMain { @@ -137,6 +136,7 @@ String home=wEnv.getJkHome(); if( home==null ) { // XXX use IntrospectionUtil to find myself +jkMain.guessHome(); } if( home != null ) { File hF=new File(home); @@ -252,8 +252,6 @@ IntrospectionUtils.processArgs( jkMain, args, new String[] {}, null, new Hashtable()); -jkMain.guessHome(); - jkMain.init(); jkMain.start(); } catch( Exception ex ) { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java
costin 02/04/10 16:53:11 Modified:jk/java/org/apache/jk/apr AprImpl.java jk/java/org/apache/jk/common ChannelUn.java jk/java/org/apache/jk/core JkHandler.java jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: More fixes for the new env. The properties will find their way to the target jk component ( assuming you want to use attributes in server.xml for config - I strongly disagree with this ) conf/jk2.properties ( or whatever name you set ) will be read. Also: AprImpl and ChannelUn work - assuming you know the magic incantations. ( i.e. jk2.properties and LD_LIBRARY_PATH ) Revision ChangesPath 1.4 +27 -11jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java Index: AprImpl.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AprImpl.java 12 Jan 2002 04:01:47 - 1.3 +++ AprImpl.java 10 Apr 2002 23:53:11 - 1.4 @@ -10,6 +10,7 @@ public class AprImpl { String baseDir; String aprHome; +String soExt=so; /** Initialize APR */ @@ -51,7 +52,11 @@ public void setBaseDir(String s) { baseDir=s; } - + +public void setSoExt(String s ) { +soExt=s; +} + // XXX maybe install the jni lib in apr-home ? public void setAprHome( String s ) { aprHome=s; @@ -71,16 +76,27 @@ public void loadNative() { if( aprHome==null ) aprHome=baseDir; -File dir=new File(aprHome); -// XXX platform independent, etc... -File apr=new File( dir, libapr.so); - -loadNative( apr.getAbsolutePath() ); - -dir=new File(baseDir); -File jniConnect=new File( dir, jni_connect.so); - -loadNative( jniConnect.getAbsolutePath() ); +if( aprHome==null ) { +// Use load() +try { +System.loadLibrary( apr ); +System.loadLibrary( jni_connect ); +} catch( Throwable ex ) { +ok=false; +ex.printStackTrace(); +} +} else { +File dir=new File(aprHome); +// XXX platform independent, etc... +File apr=new File( dir, libapr. + soExt ); + +loadNative( apr.getAbsolutePath() ); + +dir=new File(baseDir); +File jniConnect=new File( dir, jni_connect. + soExt ); + +loadNative( jniConnect.getAbsolutePath() ); +} } boolean ok=true; 1.8 +20 -5 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java Index: ChannelUn.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ChannelUn.java4 Apr 2002 00:55:35 - 1.7 +++ ChannelUn.java10 Apr 2002 23:53:11 - 1.8 @@ -82,6 +82,7 @@ String file; ThreadPool tp=new ThreadPool(); String jkHome; +String aprHome; /* Tcp socket options */ @@ -100,6 +101,12 @@ jkHome=s; } +/** Directory where APR and jni_connect are installed. + */ +public void setAprHome( String s ) { +aprHome=s; +} + /* */ long unixListenSocket; int socketNote=1; @@ -120,14 +127,22 @@ public void init() throws IOException { apr=new AprImpl(); -File f=new File( jkHome ); -File aprBase=new File( jkHome, /WEB-INF/jk2/jni ); -apr.setBaseDir( aprBase.getAbsolutePath() ); -apr.loadNative(); +if( aprHome==null jkHome != null ) { +File f=new File( jkHome ); +File aprBase=new File( jkHome, jk2/jni ); +if( aprBase.exists() ) { +aprHome=aprBase.getAbsolutePath(); +} +} +if( aprHome != null ) { +apr.setBaseDir( aprHome ); +} +apr.loadNative(); + apr.initialize(); +if( log.isDebugEnabled() ) log.debug( Creating pool + gPool ); gPool=apr.poolCreate( 0 ); -if( log.isDebugEnabled() ) log.debug( Create pool + gPool ); File socketFile=new File( file ); if( socketFile.exists() ) { 1.5 +1 -1