Re: New repository org

2005-10-08 Thread Costin Manolache

Mark Thomas wrote:



Using externals wasn't something I had thought of but if offers a nice 
way to provide all the source for one version in a single chekcout. We 
now have tomcat/current/5.5.x that uses externals to link in all the 
various modules.



That's actually what I was thinking about, looks great.

Now, the big question - where can I add a sandbox/experimental directory?

Costin






Mark


Like:

tomcat/
tomcat/catalina
tomcat/connectors
tomcat/jasper
tomcat/build ( or something else - jakarta-tomcat-5 is just the top
level build and utils )

There is little benefit those days in having 4 separate repos.

Costin



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



Re: New repository org

2005-10-06 Thread Costin Manolache
Could we just move all in tomcat5.5 ( and HEAD ) into one repository ( 
say, tomcat ) ?


Like:

tomcat/
tomcat/catalina
tomcat/connectors
tomcat/jasper
tomcat/build ( or something else - jakarta-tomcat-5 is just the top
level build and utils )

There is little benefit those days in having 4 separate repos.

Costin


Remy Maucherat wrote:

Bill Barker wrote:


It occurs to me that I may have misunderstood, and you were just talking
about setting up the svn:externals for tomcat/current.  If that's the 
case,

then +0 (I don't really care, but I'm glad that somebody does :).



svn:externals sounds like a cool feature, I guess I'll have to look it 
up to know what it does.


Mark Thomas wrote:
  If by this you mean do a checkout of
  http://svn.apache.org/repos/asf/tomcat/build/tc5.5.x to a directory
  called build in the build scripts then +1. If it involves any form of
  svn move -1 since I don't understand what you are planning to move to
  where and I have concerns about complications that might be created for
  checkouts, future branches and future tags.

No, I don't want to do any change to the repository. The problem is that 
svn isn't like CVS, so someone (like me, I tried it) which would 
checkout http://svn.apache.org/repos/asf/tomcat would be in trouble. It 
would be better to organize the developer environment. Right now, it 
organizes things using jakarta-tomcat-5, and all the other jakarta folders.


CVS was simpler ...

Rémy



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



cvs commit: jakarta-tomcat-5 build.xml

2005-09-29 Thread costin
costin  2005/09/28 23:07:24

  Modified:.build.xml
  Log:
  Add a target to build the standalone jar - in case anyone wants to play with 
it.
  
  Revision  ChangesPath
  1.239 +87 -1 jakarta-tomcat-5/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-5/build.xml,v
  retrieving revision 1.238
  retrieving revision 1.239
  diff -u -r1.238 -r1.239
  --- build.xml 22 Sep 2005 10:39:37 -  1.238
  +++ build.xml 29 Sep 2005 06:07:24 -  1.239
  @@ -192,6 +192,7 @@
  property name=tomcat-util.build value=${tomcat.build} /
  property name=tomcat-util.lib value=${tomcat.build}/server/lib /
   /ant
  +
 /target
   
 target name=build-tomcatjk unless=tomcatjk.build.notrequired 
  @@ -658,7 +659,7 @@
   !-- antcall target=build-commons-modeler / --
   !-- antcall target=build-commons-daemon  / --
   
  - antcall target=downloadgz
  +antcall target=downloadgz
 param name=sourcefile value=${commons-collections-src.loc}/
 param name=destfile value=${tomcat-dbcp.jar} /
   /antcall
  @@ -1167,6 +1168,90 @@
   /ant
 /target
   
  +  !-- === Single-jar tomcat === --
  +   target name=prepare-runtime-once 
  + description=Do once before single jar tomcat
  +mkdir dir=runtime/deps /
  +mkdir dir=runtime/classes /
  +unjar dest=runtime/deps 
src=${base.path}/servlet-api-2.4/lib/servlet-api.jar /
  +!-- unjar dest=runtime/deps 
src=${base.path}/commons-logging-1.0.4/commons-logging.jar/ --
  +unjar dest=runtime/deps 
src=${base.path}/commons-modeler-1.1/commons-modeler.jar/
  +unjar dest=runtime/deps 
src=${base.path}/jsp-api-2.0/lib/jsp-api.jar/
  +   /target
  +
  +
  +   target name=compile-runtime 
  +   description=Build single jar tomcat
  +  
  +  javac destdir=runtime/classes deprecation=false debug=false  
  +!-- classpath 
path=${base.path}/commons-beanutils-1.6.1/commons-beanutils.jar/ --
  +!-- classpath 
path=${base.path}/commons-logging-1.0.4/commons-logging.jar/ --
  +classpath 
path=${base.path}/commons-modeler-1.1/commons-modeler.jar/
  +classpath path=${base.path}/jsp-api-2.0/lib/jsp-api.jar/
  +classpath 
path=${base.path}/servlet-api-2.4/lib/servlet-api.jar/
  +classpath path=${base.path}/jmxri-1.2.1.jar/
  +
  +src
  +pathelement path=${jtc.home}/util/java/  
  +pathelement path=${jtc.home}/mini/java /
  +!-- pathelement path=${jtc.home}/naming/src/ --
  +pathelement path=${jtc.home}/coyote/src/java/
  +pathelement path=${jtc.home}/http11/src/java/
  +pathelement path=${catalina.home}/catalina/src/share/
  +/src
  +exclude name=org/apache/naming/*.java/
  +exclude name=org/apache/naming/ant/**/
  +exclude name=org/apache/tomcat/util/net/puretls/**/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15Factory.java/
  +exclude name=org/apache/tomcat/util/net/AprEndpoint.java/
  +exclude name=org/apache/coyote/tomcat3/**/
  +exclude name=org/apache/coyote/tomcat4/**/
  +exclude name=org/apache/coyote/memory/**/
  +exclude name=org/apache/coyote/standalone/**/
  +exclude 
name=org/apache/coyote/http11/Http11AprProcessor.java/
  +exclude name=org/apache/coyote/http11/Http11AprProtocol.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprInputBuffer.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprOutputBuffer.java/
  +exclude name=**/CatalinaLaunchFilter.java/
  +exclude name=**/MailSessionFactory.java/
  +exclude name=**/SendMailFactory.java/
  +exclude name=**/SemaphoreValve.java/
  +exclude name=org/apache/catalina/ant/**/
  +exclude name=org/apache/catalina/ssi/**/
  +exclude 
name=org/apache/catalina/loader/CatalinaModuleListener.java/
  +/javac
  +
  +copy todir=runtime/classes 
  +fileset dir=${jtc.home}/util/java includes=**/*.properties 
**/*.xml/
  +fileset dir=${jtc.home}/naming/src includes=**/*.properties 
**/*.xml/
  +fileset dir=${jtc.home}/coyote/src/java 
includes=**/*.properties **/*.xml 
  +  exclude name=org/apache/coyote/tomcat4/**/
  +/fileset
  +fileset dir=${jtc.home}/http11/src/java 
includes=**/*.properties **/*.xml/
  +fileset dir=${catalina.home}/catalina/src/share 
includes=**/*.properties **/*.xml/
  +/copy
  +
  +jar jarfile=runtime/tomcat-runtime.jar 
manifest

Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader WebappClassLoader.java

2005-09-29 Thread Costin Manolache

Remy Maucherat wrote:

Jan Luehe wrote:

As a reminder, CVS shound't be used anymore.


I commited a bunch of small changes, don't know how easy it'll be to get 
them in after the switch to svn. Let me know if there's a problem, I can 
roll them back.


BTW - I had some of the changes in IntrospectionUtils in my workspace as 
well, so I don't have to commit that :-)


Costin


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



Re: cvs commit: jakarta-tomcat-5 build.xml

2005-09-29 Thread Costin Manolache
BTW - there are still few files missing, but the end result is a 1.2M 
jar containing all deps, that can be run with java -jar and only 
requires a webapps/ dir in the current dir.


Costin

[EMAIL PROTECTED] wrote:

costin  2005/09/28 23:07:24

  Modified:.build.xml
  Log:
  Add a target to build the standalone jar - in case anyone wants to play with 
it.
  
  Revision  ChangesPath

  1.239 +87 -1 jakarta-tomcat-5/build.xml
  
  Index: build.xml

  ===
  RCS file: /home/cvs/jakarta-tomcat-5/build.xml,v
  retrieving revision 1.238
  retrieving revision 1.239
  diff -u -r1.238 -r1.239
  --- build.xml 22 Sep 2005 10:39:37 -  1.238
  +++ build.xml 29 Sep 2005 06:07:24 -  1.239
  @@ -192,6 +192,7 @@
  property name=tomcat-util.build value=${tomcat.build} /
  property name=tomcat-util.lib value=${tomcat.build}/server/lib /
   /ant
  +
 /target
   
 target name=build-tomcatjk unless=tomcatjk.build.notrequired 
  @@ -658,7 +659,7 @@

   !-- antcall target=build-commons-modeler / --
   !-- antcall target=build-commons-daemon  / --
   
  -  	antcall target=downloadgz

  +antcall target=downloadgz
 param name=sourcefile value=${commons-collections-src.loc}/
 param name=destfile value=${tomcat-dbcp.jar} /
   /antcall
  @@ -1167,6 +1168,90 @@
   /ant
 /target
   
  +  !-- === Single-jar tomcat === --
  +   target name=prepare-runtime-once 
  + description=Do once before single jar tomcat

  +mkdir dir=runtime/deps /
  +mkdir dir=runtime/classes /
  +unjar dest=runtime/deps 
src=${base.path}/servlet-api-2.4/lib/servlet-api.jar /
  +!-- unjar dest=runtime/deps 
src=${base.path}/commons-logging-1.0.4/commons-logging.jar/ --
  +unjar dest=runtime/deps 
src=${base.path}/commons-modeler-1.1/commons-modeler.jar/
  +unjar dest=runtime/deps 
src=${base.path}/jsp-api-2.0/lib/jsp-api.jar/
  +   /target
  +
  +
  +   target name=compile-runtime 
  +   description=Build single jar tomcat
  +  
  +  javac destdir=runtime/classes deprecation=false debug=false  

  +!-- classpath 
path=${base.path}/commons-beanutils-1.6.1/commons-beanutils.jar/ --
  +!-- classpath 
path=${base.path}/commons-logging-1.0.4/commons-logging.jar/ --
  +classpath 
path=${base.path}/commons-modeler-1.1/commons-modeler.jar/
  +classpath path=${base.path}/jsp-api-2.0/lib/jsp-api.jar/
  +classpath 
path=${base.path}/servlet-api-2.4/lib/servlet-api.jar/
  +classpath path=${base.path}/jmxri-1.2.1.jar/
  +
  +src
  +pathelement path=${jtc.home}/util/java/  
  +pathelement path=${jtc.home}/mini/java /

  +!-- pathelement path=${jtc.home}/naming/src/ --
  +pathelement path=${jtc.home}/coyote/src/java/
  +pathelement path=${jtc.home}/http11/src/java/
  +pathelement path=${catalina.home}/catalina/src/share/
  +/src
  +exclude name=org/apache/naming/*.java/
  +exclude name=org/apache/naming/ant/**/
  +exclude name=org/apache/tomcat/util/net/puretls/**/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15Factory.java/
  +exclude name=org/apache/tomcat/util/net/AprEndpoint.java/
  +exclude name=org/apache/coyote/tomcat3/**/
  +exclude name=org/apache/coyote/tomcat4/**/
  +exclude name=org/apache/coyote/memory/**/
  +exclude name=org/apache/coyote/standalone/**/
  +exclude 
name=org/apache/coyote/http11/Http11AprProcessor.java/
  +exclude name=org/apache/coyote/http11/Http11AprProtocol.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprInputBuffer.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprOutputBuffer.java/
  +exclude name=**/CatalinaLaunchFilter.java/
  +exclude name=**/MailSessionFactory.java/
  +exclude name=**/SendMailFactory.java/
  +exclude name=**/SemaphoreValve.java/
  +exclude name=org/apache/catalina/ant/**/
  +exclude name=org/apache/catalina/ssi/**/
  +exclude 
name=org/apache/catalina/loader/CatalinaModuleListener.java/
  +/javac
  +
  +copy todir=runtime/classes 
  +fileset dir=${jtc.home}/util/java includes=**/*.properties 
**/*.xml/
  +fileset dir=${jtc.home}/naming/src includes=**/*.properties 
**/*.xml/
  +fileset dir=${jtc.home}/coyote/src/java includes=**/*.properties 
**/*.xml 
  +  exclude name=org/apache/coyote/tomcat4/**/
  +/fileset
  +fileset dir=${jtc.home}/http11/src

cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote ActionHook.java ActionCode.java Adapter.java InputBuffer.java OutputBuffer.java Processor.java ProtocolHandler.java Request.java

2005-09-29 Thread costin
costin  2005/09/28 23:27:50

  Modified:coyote/src/java/org/apache/coyote ActionHook.java
ActionCode.java Adapter.java InputBuffer.java
OutputBuffer.java Processor.java
ProtocolHandler.java Request.java
  Log:
  Just a bunch of comments.
  
  Revision  ChangesPath
  1.3   +11 -1 
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/ActionHook.java
  
  Index: ActionHook.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/ActionHook.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ActionHook.java   24 Feb 2004 08:54:29 -  1.2
  +++ ActionHook.java   29 Sep 2005 06:27:50 -  1.3
  @@ -18,7 +18,17 @@
   
   
   /**
  - * Action hook.
  + * Action hook. Actions represent the callback mechanism used by
  + * coyote servlet containers to request operations on the coyote connectors.
  + * Some standard actions are defined in ActionCode, however custom
  + * actions are permitted.
  + *
  + * The param object can be used to pass and return informations related with 
the
  + * action.
  + * 
  + *
  + * This interface is typically implemented by ProtocolHandlers, and the param
  + * is usually a Request or Response object.
*
* @author Remy Maucherat
*/
  
  
  
  1.18  +8 -0  
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/ActionCode.java
  
  Index: ActionCode.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/ActionCode.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ActionCode.java   16 May 2005 04:58:00 -  1.17
  +++ ActionCode.java   29 Sep 2005 06:27:50 -  1.18
  @@ -19,7 +19,13 @@
   
   /**
* Enumerated class containing the adapter event codes.
  + * Actions represent callbacks from the servlet container to the coyote
  + * connector.
*
  + * Actions are implemented by ProtocolHandler, using the ActionHook 
interface.
  + *
  + * @see ProtocolHandler
  + * @see ActionHook
* @author Remy Maucherat
*/
   public final class ActionCode {
  @@ -40,6 +46,8 @@
   /**
* A flush() operation originated by the client ( i.e. a flush() on
* the servlet output stream or writer, called by a servlet ).
  + * 
  + * Argument is the Response.
*/
   public static final ActionCode ACTION_CLIENT_FLUSH = new ActionCode(4);
   
  
  
  
  1.3   +3 -1  
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Adapter.java
  
  Index: Adapter.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Adapter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Adapter.java  24 Feb 2004 08:54:29 -  1.2
  +++ Adapter.java  29 Sep 2005 06:27:50 -  1.3
  @@ -18,9 +18,11 @@
   
   
   /**
  - * Adapter.
  + * Adapter. This represents the entry point in a coyote-based servlet 
container.
  + *
*
* @author Remy Maucherat
  + * @see ProtocolHandler
*/
   public interface Adapter {
   
  
  
  
  1.8   +4 -0  
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/InputBuffer.java
  
  Index: InputBuffer.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/InputBuffer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- InputBuffer.java  24 Feb 2004 08:54:29 -  1.7
  +++ InputBuffer.java  29 Sep 2005 06:27:50 -  1.8
  @@ -23,6 +23,10 @@
   
   /**
* Input buffer.
  + *
  + * This class is used only in the protocol implementation. All reading from 
tomcat ( or adapter ) should be done
  + * using Request.doRead().
  + *
* 
* @author Remy Maucherat
*/
  
  
  
  1.8   +11 -1 
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/OutputBuffer.java
  
  Index: OutputBuffer.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/OutputBuffer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- OutputBuffer.java 24 Feb 2004 08:54:29 -  1.7
  +++ OutputBuffer.java 29 Sep 2005 06:27:50 -  1.8
  @@ -23,13 +23,23 @@
   
   /**
* Output buffer.
  + *
  + * This class is used internally by the protocol implementation. All writes 
from higher level code should happen
  + * via Resonse.doWrite().
* 
* @author Remy Maucherat
*/
   public interface OutputBuffer {
   
   
  -public int doWrite(ByteChunk chunk

cvs commit: jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader Loader.java Module.java ModuleClassLoader.java ModuleListener.java Repository.java package.html LoaderProperties.java

2005-09-29 Thread costin
costin  2005/09/28 23:35:48

  Modified:util/loader/org/apache/tomcat/util/loader Loader.java
Module.java ModuleClassLoader.java
ModuleListener.java Repository.java package.html
  Removed: util/loader/org/apache/tomcat/util/loader
LoaderProperties.java
  Log:
  AFAIK this is not currently used, it's just an experimental refactoring of 
the loading I started long time ago. Besides beeing
  useable standalone and more generic, it supports few extra features, like 
reloading of .jar files and using a 'flat' loader, similar with jboss and jmx.
  
  - refactoring to clean up the interfaces ( code is based on catalina loader )
  - add support for delegating to a parent classloader, needed for the case 
this is embeded in another app
  - fix various things.
  
  Revision  ChangesPath
  1.3   +396 -36   
jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Loader.java
  
  Index: Loader.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Loader.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Loader.java   6 Oct 2004 15:41:44 -   1.2
  +++ Loader.java   29 Sep 2005 06:35:47 -  1.3
  @@ -19,18 +19,24 @@
   
   
   import java.io.File;
  +import java.io.FileInputStream;
  +import java.io.InputStream;
  +import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
   import java.net.MalformedURLException;
   import java.net.URL;
   import java.util.ArrayList;
   import java.util.Enumeration;
   import java.util.Hashtable;
  +import java.util.Properties;
   import java.util.StringTokenizer;
   import java.util.Vector;
   
   
   /**
  - * Boostrap loader for Catalina.  This application constructs a class loader
  + * Boostrap loader for Catalina or other java apps. 
  + * 
  + * This application constructs a class loader
* for use in loading the Catalina internal classes (by accumulating all of 
the
* JAR files found in the server directory under catalina.home), and
* starts the regular execution of the container.  The purpose of this
  @@ -38,20 +44,44 @@
* other classes they depend on, such as an XML parser) out of the system
* class path and therefore not visible to application level classes.
*
  + *
  + * Merged with CatalinaProperties:
  + * Load a properties file describing the modules and startup sequence.
  + * This is responsible for configuration of the loader. 
  + * TODO: support jmx-style configuration, including persistence.
  + * TODO: better separate legacy config and the new style
  + * 
  + * The properties file will be named loader.properties or 
  + * catalina.properties ( for backwad compatibility ) and
  + * will be searched in:
  + *  - TODO 
  + * 
  + * Properties used:
  + *  - TODO
  + *
  + * loader.* and *.loader properties are used internally by the loader ( 
  + *  *.loader is for backward compat with catalina ).
  + * All other properties in the config file are set as System properties.
  + * 
  + * Based on o.a.catalina.bootstrap.CatalinaProperties - utility class to 
read 
  + * the bootstrap Catalina configuration.
  +
  + *
* @author Craig R. McClanahan
* @author Remy Maucherat
* @author Costin Manolache
*/ 
   public final class Loader  {
   
  -private static final boolean DEBUG=true; 
//LoaderProperties.getProperty(loader.Loader.debug) != null;
  +private static final boolean DEBUG=true; 
//LoaderProperties.getProperty(loader.debug.Loader) != null;
  +// If flat, only one loader is created. If false - one loader per jar/dir
   private static final boolean 
FLAT=false;//LoaderProperties.getProperty(loader.Loader.flat) != null;
   
   // -- 
Constants
   
   
  -protected static final String CATALINA_HOME_TOKEN = ${catalina.home};
  -protected static final String CATALINA_BASE_TOKEN = ${catalina.base};
  +private static final String CATALINA_HOME_TOKEN = ${catalina.home};
  +private static final String CATALINA_BASE_TOKEN = ${catalina.base};
   
   
   // --- Static 
Variables
  @@ -75,24 +105,53 @@
   protected ClassLoader catalinaLoader = null;
   private String[] args;
   private Hashtable repositories=new Hashtable();
  +private ClassLoader parentClassLoader;
   
  +private static Properties properties = null;
  +
   
  +private static String propFile;
   
   //  Private 
Methods
  +
  +/** Set the parent class loader - can be used instead of setParent, 
  + * in case this is the top loader and needs to delagate to embedding app.
  + * The common loader will delegate

cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup CatalinaProperties.java

2005-09-29 Thread costin
costin  2005/09/29 07:36:25

  Modified:catalina/src/share/org/apache/catalina/startup
CatalinaProperties.java
  Log:
  Busted by the tab police, fixed the settings.
  
  Revision  ChangesPath
  1.10  +4 -4  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/CatalinaProperties.java
  
  Index: CatalinaProperties.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/CatalinaProperties.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- CatalinaProperties.java   29 Sep 2005 05:52:47 -  1.9
  +++ CatalinaProperties.java   29 Sep 2005 14:36:25 -  1.10
  @@ -126,12 +126,12 @@
   if ((is == null) || (error != null)) {
   // Do something
   log.warn(Failed to load catalina.properties, error);
  - // That's fine - we have reasonable defaults.
  - properties=new Properties();
  +// That's fine - we have reasonable defaults.
  +properties=new Properties();
   }
   
   // Register the properties as system properties
  - Enumeration enumeration = properties.propertyNames();
  +Enumeration enumeration = properties.propertyNames();
   while (enumeration.hasMoreElements()) {
   String name = (String) enumeration.nextElement();
   String value = properties.getProperty(name);
  
  
  

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



cvs commit: jakarta-tomcat-5 build.xml

2005-09-29 Thread costin
costin  2005/09/29 08:28:20

  Modified:.build.xml
  Log:
  Added the target to build coyote standalone. ( there are missing files - the 
j-t-c/mini directory in particular - don't try to build until
  after svn transition, or whenever the rest of the files land )
  
  This is 200K, coyote-http11 only, compared with tomcat runtime which is 1.2M
  
  Revision  ChangesPath
  1.240 +45 -0 jakarta-tomcat-5/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-5/build.xml,v
  retrieving revision 1.239
  retrieving revision 1.240
  diff -u -r1.239 -r1.240
  --- build.xml 29 Sep 2005 06:07:24 -  1.239
  +++ build.xml 29 Sep 2005 15:28:20 -  1.240
  @@ -1252,6 +1252,51 @@
 
   target name=runtime depends=prepare-runtime-once,compile-runtime/
   
  +!-- === Coyote standalone === --
  +!--
  +This is only the http connector, for testing/experimental purposes. 
  +  --
  +
  +target name=tomcat-http11 
  +mkdir dir=runtime/http11/
  +javac destdir=runtime/http11 debug=false 
  +src
  +pathelement path=${jtc.home}/util/java/
  +pathelement path=${jtc.home}/util/loader/
  +pathelement path=${jtc.home}/mini/java/
  +pathelement path=${jtc.home}/coyote/src/java/
  +pathelement path=${jtc.home}/http11/src/java/
  +/src
  +exclude name=org/apache/coyote/http11/Http11Protocol.java/
  +exclude 
name=org/apache/coyote/http11/Http11AprProcessor.java/
  +exclude name=org/apache/coyote/http11/Http11AprProtocol.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprInputBuffer.java/
  +exclude 
name=org/apache/coyote/http11/InternalAprOutputBuffer.java/
  +exclude name=org/apache/tomcat/util/net/puretls/**/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java/
  +exclude 
name=org/apache/tomcat/util/net/jsse/JSSE15Factory.java/
  +exclude name=org/apache/tomcat/util/net/AprEndpoint.java/
  +exclude name=org/apache/tomcat/util/digester/**/
  +exclude name=org/apache/tomcat/util/compat/**/
  +exclude name=org/apache/tomcat/util/jmx/**/
  +exclude name=org/apache/tomcat/util/log/**/
  +exclude name=org/apache/tomcat/util/IntrospectionUtils.java/
  +exclude name=org/apache/coyote/tomcat3/**/
  +exclude name=org/apache/coyote/tomcat4/**/
  +exclude name=org/apache/coyote/memory/**/
  +/javac
  +copy todir=runtime/http11 
  +fileset dir=${jtc.home}/http11/src/java 
includes=**/*.properties **/*.xml/
  +fileset dir=${jtc.home}/util/java includes=**/*.properties 
**/*.xml/
  +/copy
  +
  +jar jarfile=runtime/tomcat-http11.jar 
manifest=resources/coyote-http11.MF 
  + basedir=runtime/http11 
  + includes=** /
  +
  +/target
  +
  +
 !-- === TESTER: Run Catalina Tester Tests=== 
--
 
  target name=dist-tester 
  
  
  

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



cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup Catalina.java CatalinaProperties.java ContextConfig.java Embedded.java

2005-09-28 Thread costin
costin  2005/09/28 22:52:49

  Modified:catalina/src/share/org/apache/catalina/startup Catalina.java
CatalinaProperties.java ContextConfig.java
Embedded.java
  Log:
  Another small commit dealing with the 'single-jar'/minimal case, where we 
don't have all the dir structure or fancy startup script.
  
  It defaults catalina.home to user.dir, reads default server.xml and web.xml 
out of resources, set the properties to avoid NPE.
  
  Let me know if there is a problem with this - easy to roll back, but 
shouldn't hurt any of the existing functionality.
  
  Revision  ChangesPath
  1.39  +16 -1 
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Catalina.java
  
  Index: Catalina.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Catalina.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- Catalina.java 31 Aug 2005 14:06:40 -  1.38
  +++ Catalina.java 29 Sep 2005 05:52:47 -  1.39
  @@ -463,6 +463,21 @@
   }
   }
   
  +// This should be included in catalina.jar
  +// Alternative: don't bother with xml, just create it manually.
  +if( inputStream==null ) {
  +try {
  +inputStream = getClass().getClassLoader()
  +.getResourceAsStream(server-embed.xml);
  +inputSource = new InputSource
  +(getClass().getClassLoader()
  +.getResource(server-embed.xml).toString());
  +} catch (Exception e) {
  +;
  +}
  +}
  +
  +
   if ((inputStream == null)  (file != null)) {
   log.warn(Can't load server.xml from  + file.getAbsolutePath());
   return;
  
  
  
  1.9   +5 -3  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/CatalinaProperties.java
  
  Index: CatalinaProperties.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/CatalinaProperties.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CatalinaProperties.java   16 Sep 2004 23:19:54 -  1.8
  +++ CatalinaProperties.java   29 Sep 2005 05:52:47 -  1.9
  @@ -57,7 +57,7 @@
* Return specified property value.
*/
   public static String getProperty(String name) {
  -
  + 
   return properties.getProperty(name);
   
   }
  @@ -126,10 +126,12 @@
   if ((is == null) || (error != null)) {
   // Do something
   log.warn(Failed to load catalina.properties, error);
  + // That's fine - we have reasonable defaults.
  + properties=new Properties();
   }
   
   // Register the properties as system properties
  -Enumeration enumeration = properties.propertyNames();
  + Enumeration enumeration = properties.propertyNames();
   while (enumeration.hasMoreElements()) {
   String name = (String) enumeration.nextElement();
   String value = properties.getProperty(name);
  
  
  
  1.66  +14 -2 
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
  
  Index: ContextConfig.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- ContextConfig.java21 Jul 2005 21:40:56 -  1.65
  +++ ContextConfig.java29 Sep 2005 05:52:47 -  1.66
  @@ -589,7 +589,19 @@
   source = new InputSource
   (getClass().getClassLoader()
   .getResource(defaultWebXml).toString());
  -} else {
  +} 
  +if( stream== null ) { 
  +// maybe embedded
  +stream = getClass().getClassLoader()
  +.getResourceAsStream(web-embed.xml);
  +if( stream != null ) {
  +source = new InputSource
  +(getClass().getClassLoader()
  +.getResource(web-embed.xml).toString());
  +} 
  +}
  +
  +if( stream== null ) {
   log.info(No default web.xml);
   }
   } else {
  
  
  
  1.29  +6 -2  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Embedded.java
  
  Index

cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util StringManager.java

2005-09-28 Thread costin
costin  2005/09/28 22:55:15

  Modified:catalina/src/share/org/apache/catalina/core
AprLifecycleListener.java
   catalina/src/share/org/apache/catalina/startup
Bootstrap.java WebRuleSet.java
   catalina/src/share/org/apache/catalina/util
StringManager.java
  Log:
  Remove annoying warnings when compiling with JDK1.5 ( without source=1.3 ), 
just casts to the normal params to avoid
  conflict with the vararg variants.
  
  Revision  ChangesPath
  1.4   +3 -3  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/AprLifecycleListener.java
  
  Index: AprLifecycleListener.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/AprLifecycleListener.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AprLifecycleListener.java 1 Aug 2005 12:13:59 -   1.3
  +++ AprLifecycleListener.java 29 Sep 2005 05:55:14 -  1.4
  @@ -101,8 +101,8 @@
   try {
   String methodName = terminate;
   Method method = 
Class.forName(org.apache.tomcat.jni.Library)
  -.getMethod(methodName, null);
  -method.invoke(null, null);
  +.getMethod(methodName, (Class [])null);
  +method.invoke(null, (Object []) null);
   } catch (Throwable t) {
   if (!log.isDebugEnabled()) {
   log.info(sm.getString(aprListener.aprDestroy));
  
  
  
  1.24  +7 -7  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java
  
  Index: Bootstrap.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- Bootstrap.java15 Sep 2005 06:04:01 -  1.23
  +++ Bootstrap.java29 Sep 2005 05:55:14 -  1.24
  @@ -271,8 +271,8 @@
   throws Exception {
   if( catalinaDaemon==null ) init();
   
  -Method method = catalinaDaemon.getClass().getMethod(start, null);
  -method.invoke(catalinaDaemon, null);
  +Method method = catalinaDaemon.getClass().getMethod(start, (Class 
[] )null);
  +method.invoke(catalinaDaemon, (Object [])null);
   
   }
   
  @@ -283,8 +283,8 @@
   public void stop()
   throws Exception {
   
  -Method method = catalinaDaemon.getClass().getMethod(stop, null);
  -method.invoke(catalinaDaemon, null);
  +Method method = catalinaDaemon.getClass().getMethod(stop, (Class 
[] ) null);
  +method.invoke(catalinaDaemon, (Object [] ) null);
   
   }
   
  @@ -296,8 +296,8 @@
   throws Exception {
   
   Method method = 
  -catalinaDaemon.getClass().getMethod(stopServer, null);
  -method.invoke(catalinaDaemon, null);
  +catalinaDaemon.getClass().getMethod(stopServer, (Class []) 
null);
  +method.invoke(catalinaDaemon, (Object []) null);
   
   }
   
  
  
  
  1.15  +2 -2  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java
  
  Index: WebRuleSet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- WebRuleSet.java   26 Jul 2004 16:04:01 -  1.14
  +++ WebRuleSet.java   29 Sep 2005 05:55:14 -  1.15
  @@ -576,7 +576,7 @@
   return;
   }
   
  -m.invoke(top, paramValues);
  +m.invoke(top, (Object [])paramValues);
   if (digester.getLogger().isDebugEnabled())
   digester.getLogger().debug( + top.getClass().getName() + . 
  + method + ( + paramValues[0] + 
));
  
  
  
  1.8   +1 -1  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/StringManager.java
  
  Index: StringManager.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/StringManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StringManager.java16 Sep 2004 23:19:54 -  1.7
  +++ StringManager.java29 Sep 2005 05:55:15 -  1.8
  @@ -101,7 +101,7 @@
* @param key The resource name
*/
   public String getString(String key) {
  -return MessageFormat.format(getStringInternal(key), null);
  +return MessageFormat.format(getStringInternal(key

Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup Bootstrap.java

2005-09-16 Thread Costin Manolache
I have few weeks, I'm trying to sync up some of the few changes I made 
in the last year before the code is moved to svn and try a bit more
the 'embedded' scenario ( both single-jar tomcat - that actually works 
well, and also coyote-only ).


I uploaded 2 jars at http://people.apache.org/~costin/mini - one has 
full jasper, the other only the jsp runtime. There are still few 
requirements  on the dir structure - you need to have the conf/web.xml, 
work/, webapps/, but besides that it's just 'java -jar 
tomcat+jasper.jar', no extra jars required.


tomcat-http11.jar is just coyote, with a javascript adapter as example ( 
 let me know if you want to play with it, I'll send additional info ).


Costin


Henri Gomez wrote:

Happy to see Costin is back :)

15 Sep 2005 06:04:01 -, [EMAIL PROTECTED] [EMAIL PROTECTED]:


costin  2005/09/14 23:04:01

 Modified:catalina/src/share/org/apache/catalina/startup
   Bootstrap.java
 Log:
 Support for corner case, when all tomcat is in a single jar and no fancy 
classloaders are used.

 Revision  ChangesPath
 1.23  +9 -5  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java

 Index: Bootstrap.java
 ===
 RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v
 retrieving revision 1.22
 retrieving revision 1.23
 diff -u -r1.22 -r1.23
 --- Bootstrap.java3 May 2005 14:12:52 -   1.22
 +++ Bootstrap.java15 Sep 2005 06:04:01 -  1.23
 @@ -95,6 +95,10 @@
  private void initClassLoaders() {
  try {
  commonLoader = createClassLoader(common, null);
 +if( commonLoader == null ) {
 +// no config file, default to this loader - we might be in a 
'single' env.
 +commonLoader=this.getClass().getClassLoader();
 +}
  catalinaLoader = createClassLoader(server, commonLoader);
  sharedLoader = createClassLoader(shared, commonLoader);
  } catch (Throwable t) {
 @@ -122,10 +126,10 @@
  // Local repository
  boolean packed = false;
  if (repository.startsWith(CATALINA_HOME_TOKEN)) {
 -repository = getCatalinaHome()
 +repository = getCatalinaHome()
  + repository.substring(CATALINA_HOME_TOKEN.length());
  } else if (repository.startsWith(CATALINA_BASE_TOKEN)) {
 -repository = getCatalinaBase()
 +repository = getCatalinaBase()
  + repository.substring(CATALINA_BASE_TOKEN.length());
  }

 @@ -159,14 +163,14 @@
  // Retrieving MBean server
  MBeanServer mBeanServer = null;
  if (MBeanServerFactory.findMBeanServer(null).size()  0) {
 -mBeanServer =
 +mBeanServer =
  (MBeanServer) MBeanServerFactory.findMBeanServer(null).get(0);
  } else {
  mBeanServer = MBeanServerFactory.createMBeanServer();
  }

  // Register the server classloader
 -ObjectName objectName =
 +ObjectName objectName =
  new ObjectName(Catalina:type=ServerClassLoader,name= + name);
  mBeanServer.registerMBean(classLoader, objectName);





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





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



Re: [Vote] (was Re: Top Level Project? Time for Top Level Lists?)

2005-09-15 Thread Costin Manolache

William A. Rowe, Jr. wrote:

Costin Manolache wrote:


Remy Maucherat wrote:
I doubt that filling the inbox with the bug reports or commit messages 
will make anyone care more ( or make anyone read them when they don't 
want to ) :-) It seems most people use filters anyway, and those who 
don't ( like using gmane or a web-based interface ) just suffer the 
noise, but still ignore the bugs/commits they don't care about.


I would really appreciate splitting them - I try to read tomcat-dev as 
much as possible, but web-based interfaces ( like gmane's RSS view or 
the html viewer ) are almost useless due to the noise, and filtering 
the news is not easy either.



Well, my first point was that, as a TLP, the lists should become
@tomcat.apache.org; whatever they become.

But AFA different lists are concerned, is it worth a vote?  I'm going
to abstain, as I'm not on the PMC (IIRC).  But here it is, go ahead and
cast an opinion...

Bugs
 [ ]  forward to [EMAIL PROTECTED]
 [X]  forward to [EMAIL PROTECTED]

Commits
  [ ]  forward to [EMAIL PROTECTED]
  [X]  forward to [EMAIL PROTECTED]

Vote away :)



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



cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup Bootstrap.java

2005-09-15 Thread costin
costin  2005/09/14 23:04:01

  Modified:catalina/src/share/org/apache/catalina/startup
Bootstrap.java
  Log:
  Support for corner case, when all tomcat is in a single jar and no fancy 
classloaders are used.
  
  Revision  ChangesPath
  1.23  +9 -5  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java
  
  Index: Bootstrap.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- Bootstrap.java3 May 2005 14:12:52 -   1.22
  +++ Bootstrap.java15 Sep 2005 06:04:01 -  1.23
  @@ -95,6 +95,10 @@
   private void initClassLoaders() {
   try {
   commonLoader = createClassLoader(common, null);
  +if( commonLoader == null ) {
  +// no config file, default to this loader - we might be in a 
'single' env.
  +commonLoader=this.getClass().getClassLoader();
  +}
   catalinaLoader = createClassLoader(server, commonLoader);
   sharedLoader = createClassLoader(shared, commonLoader);
   } catch (Throwable t) {
  @@ -122,10 +126,10 @@
   // Local repository
   boolean packed = false;
   if (repository.startsWith(CATALINA_HOME_TOKEN)) {
  -repository = getCatalinaHome() 
  +repository = getCatalinaHome()
   + repository.substring(CATALINA_HOME_TOKEN.length());
   } else if (repository.startsWith(CATALINA_BASE_TOKEN)) {
  -repository = getCatalinaBase() 
  +repository = getCatalinaBase()
   + repository.substring(CATALINA_BASE_TOKEN.length());
   }
   
  @@ -159,14 +163,14 @@
   // Retrieving MBean server
   MBeanServer mBeanServer = null;
   if (MBeanServerFactory.findMBeanServer(null).size()  0) {
  -mBeanServer = 
  +mBeanServer =
   (MBeanServer) 
MBeanServerFactory.findMBeanServer(null).get(0);
   } else {
   mBeanServer = MBeanServerFactory.createMBeanServer();
   }
   
   // Register the server classloader
  -ObjectName objectName = 
  +ObjectName objectName =
   new ObjectName(Catalina:type=ServerClassLoader,name= + name);
   mBeanServer.registerMBean(classLoader, objectName);
   
  
  
  

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



Re: Small refactoring in Http11Processor

2005-09-15 Thread Costin Manolache

Mark Thomas wrote:

Mladen Turk wrote:


Costin Manolache wrote:


Hi,

Also, I would like to add another directory under j-t-c, with a build 
file and few classes for a 'mini' experiment - i.e. using the 
connector standalone, as a minimal http server, and also a target to 
build a minimal servlet container as a single self-contained jar. We 
don't have a sandbox, and j-t-c seems closest to that :-)




Hi Costin,
Nice to have you back :)

Anyhow, seems that the SVN transition is in progress.
If the time is acceptable, perhaps you can postpone that, and simply
create a branch in SVN.
I'm not sure when the code will be moved to SVN,
perhaps Mark will know.



I am about to kick of TC3 and TC4. Once that is complete (few days?) 
I'll do the last batch which will be TC5, Connectors and Jasper.


Mark


Is there any plan to do a bit of cleanup ? Maybe move some of the dead 
code in connectors (mod_webap, jk2, etc ) to a new repo ? And maybe add 
a new 'sandbox' repository ?


Costin


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



Re: How strongly Tomcat 5.5.x will be committed to JDK 1.4.x in future..

2005-09-14 Thread Costin Manolache
The current servlet spec doesn't requires J2SE 5.0 - only the next one ( 
another stupid forced, unjustified transition IMO ).


I would assume JDK1.4 will be supported for a while, as long as the 
current version of the servlet spec is in use.
Tomcat3.3, which supports JDK1.1, has been maintained for quite a while 
after switching to JDK1.3 and then JDK1.4. I don't see how anyone who 
has been around for past upgrades could expect a mass migration to the 
new servlet spec and JDK1.5.



Costin

Yoav Shapira wrote:

Hi,
Tomcat 5.5 will always allow JDK 1.4.  Tomcat 6.0, as required by the J2EE 5
specifications, will require J2SE 5.0.  I repeat, for emphasis, that this is
required by the J2EE 5 Specification itself, which Tomcat 6.0 will support: it
is not our decision to drop support for JDK 1.4.

Yoav

--- Girish Vasvani [EMAIL PROTECTED] wrote:



Hi,

We'r puzzled between tomcat 5.0.x and 5.5.x.
Due to our product restrictions we can't use JDK 1.5. Looked at jakarta web
site, it seems that using tomcat 5.5.x seriese compated to 5.0.x is a good
idea and recommended.

Before committing our product to tomcat 5.5.9, I want to know how much tomcat
dev team will be committed to supporting JDK 1.4.x going forward ? 


thanks in advance for your help,
Girish



-
Yahoo! for Good
Click here to donate to the Hurricane Katrina relief effort. 



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



cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11BaseProtocol.java Http11Protocol.java

2005-09-11 Thread costin
costin  2005/09/11 09:25:20

  Modified:http11/src/java/org/apache/coyote/http11 Http11Protocol.java
  Added:   http11/src/java/org/apache/coyote/http11
Http11BaseProtocol.java
  Log:
  Small refactoring removing the compile time dependency between http connector 
and jmx.jar.
  It also removes the need to have jmx apis in classpath when running the 
connector, in servers not using jmx.
  
  Http11BaseProtocol is a copy of the old Http11Protocol, with jmx-related code 
removed.
  Http11Protocol has the remaining jmx code.
  
  AprHttp11Protocol can't currently use the base class because all it's classes 
( AprEndpoint, Handler, etc )
  are incompatible.
  
  Revision  ChangesPath
  1.65  +12 -656   
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java
  
  Index: Http11Protocol.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- Http11Protocol.java   22 May 2005 17:12:11 -  1.64
  +++ Http11Protocol.java   11 Sep 2005 16:25:20 -  1.65
  @@ -56,98 +56,12 @@
* @author Remy Maucherat
* @author Costin Manolache
*/
  -public class Http11Protocol implements ProtocolHandler, MBeanRegistration
  +public class Http11Protocol extends Http11BaseProtocol implements 
MBeanRegistration
   {
   public Http11Protocol() {
  -cHandler = new Http11ConnectionHandler( this );
  -setSoLinger(Constants.DEFAULT_CONNECTION_LINGER);
  -setSoTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
  -setServerSoTimeout(Constants.DEFAULT_SERVER_SOCKET_TIMEOUT);
  -setTcpNoDelay(Constants.DEFAULT_TCP_NO_DELAY);
  +super();
   }
   
  -/**
  - * The string manager for this package.
  - */
  -protected static StringManager sm =
  -StringManager.getManager(Constants.Package);
  -
  -/** Pass config info
  - */
  -public void setAttribute( String name, Object value ) {
  -if( log.isTraceEnabled())
  -log.trace(sm.getString(http11protocol.setattribute, name, 
value));
  -
  -attributes.put(name, value);
  -}
  -
  -public Object getAttribute( String key ) {
  -if( log.isTraceEnabled())
  -log.trace(sm.getString(http11protocol.getattribute, key));
  -return attributes.get(key);
  -}
  -
  -public Iterator getAttributeNames() {
  -return attributes.keySet().iterator();
  -}
  -
  -/**
  - * Set a property.
  - */
  -public void setProperty(String name, String value) {
  -setAttribute(name, value);
  -}
  -
  -/**
  - * Get a property
  - */
  -public String getProperty(String name) {
  -return (String)getAttribute(name);
  -}
  -
  -/** The adapter, used to call the connector
  - */
  -public void setAdapter(Adapter adapter) {
  -this.adapter=adapter;
  -}
  -
  -public Adapter getAdapter() {
  -return adapter;
  -}
  -
  -
  -/** Start the protocol
  - */
  -public void init() throws Exception {
  -ep.setConnectionHandler( cHandler );
  -try {
  -checkSocketFactory();
  -} catch( Exception ex ) {
  -log.error(sm.getString(http11protocol.socketfactory.initerror),
  -  ex);
  -throw ex;
  -}
  -
  -if( socketFactory!=null ) {
  -Enumeration attE=attributes.keys();
  -while( attE.hasMoreElements() ) {
  -String key=(String)attE.nextElement();
  -Object v=attributes.get( key );
  -socketFactory.setAttribute( key, v );
  -}
  -}
  -
  -// XXX get domain from registration
  -try {
  -ep.initEndpoint();
  -} catch (Exception ex) {
  -log.error(sm.getString(http11protocol.endpoint.initerror), ex);
  -throw ex;
  -}
  -if(log.isInfoEnabled())
  -log.info(sm.getString(http11protocol.init, getName()));
  -
  -}
   
   ObjectName tpOname;
   ObjectName rgOname;
  @@ -178,460 +92,18 @@
   ( cHandler.global, rgOname, null );
   }
   
  -try {
  -ep.startEndpoint();
  -} catch (Exception ex) {
  -log.error(sm.getString(http11protocol.endpoint.starterror), 
ex);
  -throw ex;
  -}
  -if(log.isInfoEnabled())
  -log.info(sm.getString(http11protocol.start, getName()));
  -}
  -
  -public void pause() throws Exception {
  -try {
  -ep.pauseEndpoint();
  -} catch (Exception ex) {
  -log.error(sm.getString

Re: Small refactoring in Http11Processor

2005-09-09 Thread Costin Manolache

Bill Barker wrote:

- Original Message -
From: Costin Manolache [EMAIL PROTECTED]
To: tomcat-dev@jakarta.apache.org
Sent: Thursday, September 08, 2005 10:56 PM
Subject: Small refactoring in Http11Processor




Hi,

I have a small patch, spliting the JMX-dependent code in
Http11Processor, i.e.  the few lines of code dealing with the
registration of the thread pool and per thread data - and moving all
non-jmx code in a separate base class.

I know Tomcat5 is heavily dependent on JMX, but the connector can be
used in other containers, or it can be used standalone. This small
change won't affect any functionality on tomcat - all methods are used
only for intialization anyway, not in the critical path.

Please review and let me know if it's ok to commit the change.




It seems that the only thing this patch does is to allow you to exclude
jmx.jar, so it's usefulness seems very minimal :).  TC 3.3  4.1 already run
very happily with the current code without JMX enabled.


True, it allows a smaller package. TC3.3 and 4.1 don't register the 
connector, so no JMX-related code is called, but it still requires 
jmx.jar to be around.






Something better would be a refactor that would remove the duplicated code
between Http11Processor and Http11AprProcessor (which one doesn't do :).


Yes, I've been thinking about this too :-), and also InternalAprBuffer 
and maybe add conditional compilation for the apr. But I didn't want to 
make the diff too big and risky.





Of course, none of this is enough for me to veto your scratching an itch :).



Also, I would like to add another directory under j-t-c, with a build
file and few classes for a 'mini' experiment - i.e. using the connector
standalone, as a minimal http server, and also a target to build a
minimal servlet container as a single self-contained jar. We don't have
a sandbox, and j-t-c seems closest to that :-)




I agree with Mladen that this would work better if you could wait a couple
of weeks until we are up on SVN.


Ok, sounds good, I need to clean up the code anyway ( well, there are 
2-3 classes only and some build.xml ).



Costin


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



Re: Top Level Project? Time for Top Level Lists?

2005-09-08 Thread Costin Manolache

Remy Maucherat wrote:
So I, for one, would be most appreciative of splitting the traffic; I 
already do split it in my email client, but I think this would be a

help to many participants.  [Especially if, for example, you want the
dev@ traffic to go to a higher priority email account, and have the
commits/issues type traffic hit your lower priority account.]



Of course, but also fewer people will care about bug reports.


I doubt that filling the inbox with the bug reports or commit messages 
will make anyone care more ( or make anyone read them when they don't 
want to ) :-) It seems most people use filters anyway, and those who 
don't ( like using gmane or a web-based interface ) just suffer the 
noise, but still ignore the bugs/commits they don't care about.


I would really appreciate splitting them - I try to read tomcat-dev as 
much as possible, but web-based interfaces ( like gmane's RSS view or 
the html viewer ) are almost useless due to the noise, and filtering the 
news is not easy either.


Costin



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



Small refactoring in Http11Processor

2005-09-08 Thread Costin Manolache

Hi,

I have a small patch, spliting the JMX-dependent code in 
Http11Processor, i.e.  the few lines of code dealing with the 
registration of the thread pool and per thread data - and moving all 
non-jmx code in a separate base class.


I know Tomcat5 is heavily dependent on JMX, but the connector can be 
used in other containers, or it can be used standalone. This small 
change won't affect any functionality on tomcat - all methods are used 
only for intialization anyway, not in the critical path.


Please review and let me know if it's ok to commit the change.

Also, I would like to add another directory under j-t-c, with a build 
file and few classes for a 'mini' experiment - i.e. using the connector 
standalone, as a minimal http server, and also a target to build a 
minimal servlet container as a single self-contained jar. We don't have 
a sandbox, and j-t-c seems closest to that :-)


Costin
? src/java/org/apache/coyote/http11/Http11BaseProtocol.java
Index: src/java/org/apache/coyote/http11/Http11Protocol.java
===
RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java,v
retrieving revision 1.64
diff -b -u -w -r1.64 Http11Protocol.java
--- src/java/org/apache/coyote/http11/Http11Protocol.java   22 May 2005 
17:12:11 -  1.64
+++ src/java/org/apache/coyote/http11/Http11Protocol.java   9 Sep 2005 
05:31:50 -
@@ -56,98 +56,12 @@
  * @author Remy Maucherat
  * @author Costin Manolache
  */
-public class Http11Protocol implements ProtocolHandler, MBeanRegistration
+public class Http11Protocol extends Http11BaseProtocol implements 
MBeanRegistration
 {
 public Http11Protocol() {
-cHandler = new Http11ConnectionHandler( this );
-setSoLinger(Constants.DEFAULT_CONNECTION_LINGER);
-setSoTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
-setServerSoTimeout(Constants.DEFAULT_SERVER_SOCKET_TIMEOUT);
-setTcpNoDelay(Constants.DEFAULT_TCP_NO_DELAY);
+super();
 }
 
-/**
- * The string manager for this package.
- */
-protected static StringManager sm =
-StringManager.getManager(Constants.Package);
-
-/** Pass config info
- */
-public void setAttribute( String name, Object value ) {
-if( log.isTraceEnabled())
-log.trace(sm.getString(http11protocol.setattribute, name, 
value));
-
-attributes.put(name, value);
-}
-
-public Object getAttribute( String key ) {
-if( log.isTraceEnabled())
-log.trace(sm.getString(http11protocol.getattribute, key));
-return attributes.get(key);
-}
-
-public Iterator getAttributeNames() {
-return attributes.keySet().iterator();
-}
-
-/**
- * Set a property.
- */
-public void setProperty(String name, String value) {
-setAttribute(name, value);
-}
-
-/**
- * Get a property
- */
-public String getProperty(String name) {
-return (String)getAttribute(name);
-}
-
-/** The adapter, used to call the connector
- */
-public void setAdapter(Adapter adapter) {
-this.adapter=adapter;
-}
-
-public Adapter getAdapter() {
-return adapter;
-}
-
-
-/** Start the protocol
- */
-public void init() throws Exception {
-ep.setConnectionHandler( cHandler );
-try {
-checkSocketFactory();
-} catch( Exception ex ) {
-log.error(sm.getString(http11protocol.socketfactory.initerror),
-  ex);
-throw ex;
-}
-
-if( socketFactory!=null ) {
-Enumeration attE=attributes.keys();
-while( attE.hasMoreElements() ) {
-String key=(String)attE.nextElement();
-Object v=attributes.get( key );
-socketFactory.setAttribute( key, v );
-}
-}
-
-// XXX get domain from registration
-try {
-ep.initEndpoint();
-} catch (Exception ex) {
-log.error(sm.getString(http11protocol.endpoint.initerror), ex);
-throw ex;
-}
-if(log.isInfoEnabled())
-log.info(sm.getString(http11protocol.init, getName()));
-
-}
 
 ObjectName tpOname;
 ObjectName rgOname;
@@ -178,460 +92,18 @@
 ( cHandler.global, rgOname, null );
 }
 
-try {
-ep.startEndpoint();
-} catch (Exception ex) {
-log.error(sm.getString(http11protocol.endpoint.starterror), ex);
-throw ex;
-}
-if(log.isInfoEnabled())
-log.info(sm.getString(http11protocol.start, getName()));
-}
-
-public void pause() throws Exception {
-try {
-ep.pauseEndpoint();
-} catch (Exception ex) {
-log.error(sm.getString(http11protocol.endpoint.pauseerror), ex);
-throw ex

Re: commons-logging infinite loop w/5.5.9

2005-08-24 Thread Costin Manolache

Nathan Bubna wrote:

On 8/23/05, Remy Maucherat [EMAIL PROTECTED] wrote:


Nathan Bubna wrote:


hey folks,

i'm a developer on the VelocityTools subproject, and we recently came
across an issue with the use of commons-logging in Tomcat 5.5.9.

by default, we configure our example applications to use an adapter
between commons-logging and Velocity's LogSystem.  this way, those of
our tools which require logging are able to send messages to
commons-logging and they get passed of to the LogSystem that the rest
of Velocity is using (without having to pass that LogSystem around).
We also, by default, configure our VelocityViewServlet (the core class
of VelocityTools) to automatically send LogSystem messages to the
servlet log.

so, messages sent to c-l are sent the the Velocity LogSystem which
sends the messages to the servlet log.

this works just dandy for everyone in Tomcat 5.0.x, but when we deploy
our very minimal example applications in Tomcat 5.5.9, we promptly
receive stack overflows and out of memory errors that appear to be a
nasty little commons-logging loop.

can somebody help me figure out what change between 5.0 and 5.5 is
causing this?  and further, what can be done about it?  i'm still not
even sure whether to consider this a bug in our design or in Tomcat.

any help would be much appreciated!


In Tomcat 5.5, everything is logged to commons-logging, so the loop you
get is to be expected.



so, i guess that means web applications/frameworks that wish to work
with Tomcat 5.5 must either not redirect commons-logging messages to
their own logging solution or else they must not use
servletContext.log(...) as a target for their logging solution,
correct?



Seems so - since servletContext.log() call commons-logging, not a good 
idea to use an impl. of commons-logging that eventually calls 
servletContext.log().
Maybe a better solution would be to have the Velocity LogSystem send 
messages to commons-logging, then everything will go to c-l and the 
chosen impl.


Costin


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



Re: inprocess Tomcat/apache via mod_jk

2005-08-21 Thread Costin Manolache
With worker - it may work. However you may find mod_jk inprocess to be 
slower than ajp and mod_proxy ( or comparable in speed ), this is due to 
 the way parameters are passed as strings ( i.e. lots of unoptimized 
char-byte conversion ).


Porting to 5.5.x shouldn't be hard - the interface between tomcat and 
modjk is very simple: you need to startup, i.e. make sure classpath is 
set and the class that executes launches tomcat correctly, and then it's 
a simple class that does the request/response passing.


If you do this for performance reasons - you may want to look at the 
code in jk2, and try to backport it. A benefit would be that the 
interface is even simpler - the req/response are passed in the same kind 
of buffer as ajp requests. AFAIK that's the only major difference. Since 
Remy, Mladen, etc have greatly optimized the regular tcp connectors - 
probably the difference on performance ( with this optimization 
backported ) will be small. But if you use the old style of interface - 
I'm sure jni will be slower (it was slower 2 years ago).


Costin


Christine Ho wrote:

Hi,
   Thanks a lot. I am really appreciated for your
reply. How about the worker MPM? My team is running
the httpd.worker on RHEL4. The current setting is:

StartServers 1
ServerLimit 1

MaxClients 64
MinSpareThreads 32
MaxSpareThreads 64
ThreadsPerChild 64 


Does the inprocess Tomcat 5.5.9 work for the worker
MPM?

thanks,
Christine

--- Bill Barker [EMAIL PROTECTED] wrote:



Well, inprocess doesn't really work for any MPM on
*nix systems (e.g. with
the prefork MPM, you end up with MaxChild copies of
Tomcat running :).  As a
result, there just hasn't been that much interest in
implementing (or even
back-porting) a feature that only works on Windows
and NetWare.


- Original Message -
From: Christine Ho [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, August 16, 2005 3:30 PM
Subject: inprocess Tomcat/apache via mod_jk


Hi,
  I have posted this email a month ago. I just
wonder
if any developer on mod_jk can answer my question. I
would like to have inprocess Tomcat 5.5.9 running in
Apache 2.x if possible.

thanks again,
Christine


Hi,
  I tried to setup Tomcat 5.5.9 running inside the
apache server 2.x via the mod_jk on RHEL4. I got the
following error:
[debug] open_jvm2::jk_jni_worker.c (1055): JVM
created
[emerg] get_bridge_object::jk_jni_worker.c (1097):
Can't find class
org/apache/tomcat/modules/server/JNIEndpoint

I looked at the mod_jk source codes and found out
that
the mod_jk supports the TC32_BRIDGE_TYPE and
TC33_BRIDGE_TYPE. It doesnt support bridge type of
tomcat 4.x and up. Plus the tomcat 5.5.9 doesnt have
the JNIEndpoint.class.

However, it seems to me that the deprecated mod_jk2
supports bridge type of tomcat 4.x and up because it
tries to instantiate the class
org/apache/jk/apr/TomcatStarter.class which exists
in
tomcat-ajp.jar.

I really dont understand why the mod_jk supports
tomcat 3.x only whereas the deprecated mod_jk2
supports tomcat 4.x and 5.x. Can somebody please
tell
me why?

Also is it easy to have mod_jk to support
TC55_BRIDGE_TYPE? Based on the mod_jk source codes
jk_jni_worker.c, I think I just need to define the
TC55_JAVA_BRIDGE_CLASS_NAME to be
org/apache/jk/apr/TomcatStarter.class and then
assign
it to the btype. Is it just that simple?

Another question is what the disadvantages of
running
tomcat inside the apache are. I googled and it seems
to me that not too many people try to run inprocess
tomcat inside apache. I would be interested in
adding
the 5.5 bridge type to the mod_jk.

thanks,
Christine


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam
protection around
http://mail.yahoo.com




-


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





This message is intended only for the use of the
person(s) listed above as the intended recipient(s),
and may contain information that is PRIVILEGED and
CONFIDENTIAL.  If you are not an intended recipient,
you may not read, copy, or distribute this message
or any attachment. If you received this
communication in error, please notify us immediately
by e-mail and then delete all copies of this message
and any attachments.

In addition you should be aware that ordinary
(unencrypted) e-mail sent through the Internet is
not secure. Do not send confidential or sensitive
information, such as social security numbers,
account numbers, personal identification numbers and
passwords, to us via ordinary (unencrypted) e-mail.





-


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









Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs

Re: svn commit: r232601 - /tomcat/watchdog/branches/tc4.1.x/WARNING.txt

2005-08-15 Thread Costin Manolache

Did tomcat move to svn already ?

Costin


[EMAIL PROTECTED] wrote:

Author: markt
Date: Sun Aug 14 04:48:32 2005
New Revision: 232601

URL: http://svn.apache.org/viewcvs?rev=232601view=rev
Log:
Remove CVS closure warning from SVN

Removed:
tomcat/watchdog/branches/tc4.1.x/WARNING.txt



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



Re: AJP using APR

2005-06-12 Thread Costin Manolache

Bill Barker wrote:
Costin Manolache [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]



Bill Barker wrote:

If I understand you correctly, you want MsgAjp to use ByteBuffer instead 
of byte [].  At the cost of never supporting JDK 1.3 ever again, this 
would probably actually improve the performance of ChannelSocket (after 
changing it to use a blocking SocketChannel).


The biggest difference will be if it's a 'direct' buffer, i.e. zero copy. 
Classpath ( gcj, kaffe, etc ) also has byte buffer support - so it should 
be ok, if anyone needs jdk1.3, they can use the old code.





Yes, the idea was that it would be a direct buffer.



But where is the code ?




It's on my hard-drive.  Unlike Remy's APR stuff, o.a.jk is supposed to be a 
pretty stable package(s) at this point.  I can't just check in stuff like 
this without a lot of testing to make sure that it doesn't break anything 
more than JDK 1.3 compatibility ;-).


That's why C has conditional compilation - and java has some 
options-controlled ugly 'if' code :-) It doesn't break anything if the 
option/def is not selected ( just makes the code a bit uglier ). This 
way even JDK1.3 will be happy.



The biggest problem in JNI ( and probably - in Java playing nice with 
other languages and the rest of the platform ) is the objects and 
buffers moving around almost randomly. Yes, it may improve a bit the 
garbage collection speed - so people can create millions of garbage 
objects without thinking about it, unlike most other languages that 
require you to think when allocating objects - but it is the kind of 
optimization that has disastrous consequences on the rest of the 
systems. Luckily gcj and kaffe and mono don't do this crazy thing.

Direct buffers is one band-aid that should be used whenever possible.

Costin






Costin





Rémy





This message is intended only for the use of the person(s) listed above 
as the intended recipient(s), and may contain information that is 
PRIVILEGED and CONFIDENTIAL.  If you are not an intended recipient, you 
may not read, copy, or distribute this message or any attachment. If you 
received this communication in error, please notify us immediately by 
e-mail and then delete all copies of this message and any attachments.


In addition you should be aware that ordinary (unencrypted) e-mail sent 
through the Internet is not secure. Do not send confidential or sensitive 
information, such as social security numbers, account numbers, personal 
identification numbers and passwords, to us via ordinary (unencrypted) 
e-mail.






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



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



Re: AJP using APR

2005-06-10 Thread Costin Manolache

Bill Barker wrote:


If I understand you correctly, you want MsgAjp to use ByteBuffer instead 
of byte [].  At the cost of never supporting JDK 1.3 ever again, this 
would probably actually improve the performance of ChannelSocket (after 
changing it to use a blocking SocketChannel).


The biggest difference will be if it's a 'direct' buffer, i.e. zero 
copy.  Classpath ( gcj, kaffe, etc ) also has byte buffer support - so 
it should be ok, if anyone needs jdk1.3, they can use the old code.



But where is the code ?

Costin






Rémy





This message is intended only for the use of the person(s) listed above 
as the intended recipient(s), and may contain information that is 
PRIVILEGED and CONFIDENTIAL.  If you are not an intended recipient, you 
may not read, copy, or distribute this message or any attachment. If you 
received this communication in error, please notify us immediately by 
e-mail and then delete all copies of this message and any attachments.


In addition you should be aware that ordinary (unencrypted) e-mail sent 
through the Internet is not secure. Do not send confidential or 
sensitive information, such as social security numbers, account numbers, 
personal identification numbers and passwords, to us via ordinary 
(unencrypted) e-mail.






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



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



Re: Tomcat performance patch (in development) to reduce concurrency...

2005-05-04 Thread Costin Manolache
Mladen Turk wrote:
Scott Marlow wrote:
Hi,
I wonder if anyone has any feedback on a performance change that I am
working on making.

Can you compare the performance of you code with the standard
implementation when the concurrency is lower then maxThreads
value?
I see no point to make patches that will deal with cases presuming
that the concurrency is always higher then the actual number of
worker threads available.
IMHO this is a bad design approach for the http applications,
and NIO performance is a proof of that.
It might help in cases where you have a very very slow clients.
In any other case the thread context switching will kill
the performance thought.
Further more I don't see how can you avoid keep-alive connection
problems without using a thread-per-connection model.
The point is that with 100 keep-alive connections you will still
have 100 busy threads.
Why ? 100 keep alive connections doesn't mean 100 active requests,
in real servers there are many 'keep alive' connections that are just
waiting for the next request.
In all servers I know, concurrency was higher than the configured number 
of workers  - at peak time, at least, where performance matters.

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


Re: Tomcat performance patch (in development) to reduce concurrency...

2005-05-04 Thread Costin Manolache
Remy Maucherat wrote:
I looked at this yesterday, and while it is a cool hack, it is not that 
useful anymore (and we're also not going to use the concurrent utilities 
in Tomcat, so it's not really an option before we require Java 5). The 
main issue is that due to the fact keepalive is done in blocking mode, 
actual concurrency in the servlet container is unpredictable (the amount 
of processing threads - maxThreads - will usually be a lot higher than 
the actual expected concurrency - let's say 100 per CPU). If that issue 
is solved (we're trying to see if APR is a good solution for it), then 
the problem goes away.
I'm still trying to understand the APR connector, but from what I see it 
is still mapping one socket ( 'keep alive' connection ) per thread. 
That's how it allways worked - but it's not necesarily the best 
solution. The only thing that is required is to have a thread per active 
request - the sleepy keep alives don't need thread ( that could be 
implemented using select in the apr, or nio in java )


Your patch is basically a much nicer implementation of maxThreads 
(assuming it doesn't reduce performance) which would be useful for the 
regular HTTP connector, so it's cool, but not worth it. Overall, I think 
the way maxThreads is done in the APR connector is the easiest (if the 
amount of workers is too high, wait a bit without accepting anything).
That's a tricky issue :-) In some cases ( like load balancing ) not 
accepting is the right solution, but in other cases droping connections 
is not what people want ( in particular if most of the threads are just 
waiting on keep alives ).

( sorry if I missed some details in the new implementation :-)
Costin

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


Re: Tomcat performance patch (in development) to reduce concurrency...

2005-05-04 Thread Costin Manolache
Mladen Turk wrote:
Costin Manolache wrote:
I'm still trying to understand the APR connector, but from what I see 
it is still mapping one socket ( 'keep alive' connection ) per thread. 

No it doesn't. If the connection is keep-alive, and there is no activity
for 100ms, the socket is put in the poller, and that thread is freed.
When the next data on that socket arrives, the socket is signaled and
passed to the thread pool.
Mladen.
Sorry, I missed that. So we can have as many 'keep alive' idle as we 
want - only those active are taking threads ? Which file implements this 
( the 100ms timeout and poller ) ? I assume this is only done in the APR 
connector, or is it implemented in java as well ( nio ) ? .

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


Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator AuthenticatorBase.java

2005-04-24 Thread Costin Manolache
Remy Maucherat wrote:
Keith Wannamaker wrote:
If no one else is concerned that Tomcat 5.5 doesn't work by default

Any other nonsensical statement to make ? The only thing that does not 
work is opening third party documents from the website, due to IE's 
broken handling of this.

How about a) going whining at M$ instead ? b) using appropriate 
configuration.

Your veto is completely invalid anyway.
IE is still (unfortunately) the browser used by a lot of people, and if
there is a way to work around IE brokeness - I think it's a good idea to 
do it.

Complaining to M$ doesn't work - people will just end up buying IIS 
instead :-)

Seriously, not sure why is the veto invalid - if the choice is between 
having it working for 90% of the people and doing it 'right' - it is 
worth probably more discussion and a pragmatic decision :-) I would vote 
for fixing it for the 90% of people - at least until IE gets down to 
some 49%.

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


Re: New TLP draft

2005-04-08 Thread Costin Manolache
Remy Maucherat wrote:
Need to identify just how much of the jakarta-* CVS will go with
Tomcat. Watchdog + ServletAPI modules?

That's undecided. Would the old projects would remain at Jakarta, or 
would they be covered by the new project ?

Why would they remain in jakarta ? They have the same committer list as 
tomcat, and are closely related.

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


Re: New TLP draft

2005-04-06 Thread Costin Manolache
Tim Funk wrote:
Looks good. Just an idea, it may be nice to have the 3 new lists
tomcat-bug - bug updates from bugzilla. When I subscribe to other groups 
tomcat-cvs  - Same as tomcat-bug but just for cvs commits.
tomcat-gump  - For deaths by gump. If your not a committer - these are 
This has been debated many times :-), maybe this time it'll succeed.
The typical argument for keeping it all in one place is that it may 
force people to read them instead of filtering the out with the mail 
app. It would be nice to split it - it'll be much easier to read 
tomcat-dev ( including in blogs.gmane.org ).

Regarding CVS move - are we going to just change the name of the roots ( 
s/jakarta/apache/ ) or should we do a bit more reorg, to make it easier 
when we move to svn ?  The current layout is based on a lot of 
'historic' reasons that no longer apply. For 3.x and 4.x - of course it 
makes sense to just keep the trees as they are.

Costin

-Tim
Remy Maucherat wrote:
Hi,
Here's a new draft with the necessary updates.
I suppose this needs to be sent to the PMC for approval. If this draft 
is ok, I will send it there.

Then there are infrastructure taks:
- renaming mailing lists
- moving CVS
- new DNS and virtual host

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


Re: [RESULT] PMC Chair

2005-04-01 Thread Costin Manolache
Kurt Miller wrote:
From: Yoav Shapira [EMAIL PROTECTED]
Below is the draft resolution we agreed on previously, so it should be
pretty close.  We need to make sure the PMC names are correct and 
complete.
Congrats to Remy and thanks everyone for voting, and of course thanks 
Henri
;)

Yoav

While my low level of involvement probably doesn't merit being in the PMC,
I'm concerned that only those names that appear in the PMC list will retain
active committer status. I'm sure there are other committers who fall into
my category. Will the 50+ committers who are not on the PMC be move
to emeritus status? If not how will that be decided?
Congratulations to Remy. Also thank you Yoav for moving the formalities 
along.
Congratulation Remy !
I think a lot of people agree that anyone who is an active committer 
should be in the PMC ( that's what jakarta has been doing for a long 
time ). It's 'should' - not 'must' - that means you are not required to 
do this if you really don't want to.

I think Remy has already sent additional lists of people who are active 
but have not voted. I assume those who really don't want will have to 
send email to Remy to be taken out of the list before it goes to the board.

Regarding 'emeritus status' - I think usually people who have not 
participated in the last 6 months ( or 1 year ) can be moved to 
'emeritus' - unless they ask to remain in the list of active committers.
( for example because they plan to return to active soon, etc :-). We 
could send a mail to everyone in the avail list, and if we don't get an 
answer or we get an 'I don't care' - we should do the switch.

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


Re: [RESULT] PMC Chair

2005-04-01 Thread Costin Manolache
Remy Maucherat wrote:
Kurt Miller wrote:
From: Yoav Shapira [EMAIL PROTECTED]
Below is the draft resolution we agreed on previously, so it should be
pretty close.  We need to make sure the PMC names are correct and 
complete.
Congrats to Remy and thanks everyone for voting, and of course thanks 
Henri
;)

Yoav

While my low level of involvement probably doesn't merit being in the 
PMC,
I'm concerned that only those names that appear in the PMC list will 
retain
active committer status. I'm sure there are other committers who fall 
into
my category. Will the 50+ committers who are not on the PMC be move
to emeritus status? If not how will that be decided?

The official ASF policy calls for a 6 month inactivity. No Tomcat 
committer has ever been removed in 5+ years. It seems reasonable to me 
that if they don't at least ask for it that they would now be removed.
+1
To get things started, since I'm probably close to the 6 month 
inactivity limit ( in either direction :), I would like to ask to stay 
in the active list :-)


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


Re: [ANN] JK 1.2.10 Released

2005-03-31 Thread Costin Manolache
Mladen Turk wrote:
Henri Gomez wrote:
I could provide Linux binaries for Suse 8.0 PPC and Suse SLES 9 but
it's up to distributions mainteners to provide such binaries (via
rpm/deb).
Take a look at jpackage for many Linux RPM binaries
Yes, that is my opinion too.
We should focus on providing a solid:
'configure  make  make install', rather then
providing a binaries for ourself.
I think that we are good and mature project that any
serious linux distribution (at least targeted for
enterprise environment) should take into account,
and provide a binaries on their own.
We can provide binaries for platforms that does not
come with integrated build system like WIN32, and
we are doing so. Although, personally I would be
pleased to see the isapi_redirector.dll as part of the
next XP service pack, it's hard too expect something
like that :)
I kind of disagree...
If I want Firefox for linux - I get it from Mozilla.org. It may be a 
.tar.gz or .rpm - but it is a binary provided by the software 
maintainers, not by a 3rd party ( like a linux distributor ). And it is 
the 'real' thing, not a randomly modified version ( different flags and 
features, etc ).

Linux is such a mess in large part because people who write software 
treat it as second-class - 'let someone else deal with compiling 
binaries for linux, I'll only do it for windows and mac'. As a result 
linux distributions have the freedom to mess up and 'personalize' each 
package to their own taste ( we all know how painful it is to switch 
from one distro to another or use/support 2 distros - each file is in a 
different place - this is called lock in ). On windows - you can get 
nice binaries, with installer and everything else you would expect - 
distributed by the package authors.


Costin

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


Re: [VOTE] PMC Chair

2005-03-25 Thread Costin Manolache
Jim Jagielski wrote:
I would recommend that before anyone responds, we decide who should
rec' and tally the votes. Also, votes should only be counted
from those who will be on the new PMC.
So before the vote:
   1. Finalize list of PMC members
  (all current committers)
   2. Determine who to collect and tally votes
  (I propose Henri Yandell)

Let's not make this too long or complicated.
Some votes are already out of the box, and I think we agree that
any committer who wants to be in the PMC can get there by simply asking 
for it.

So if Henri can send back a count ( or just the winner ) of all private 
votes he receives, as well as the list of people who voted - we can 
check against avail and update the PMC member list as well. ( a vote by 
a committer is an indication that he wants to vote so he wants to be in 
the pmc :-).

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


Re: [VOTE] PMC Chair

2005-03-24 Thread Costin Manolache
Yoav Shapira wrote:
The initial Tomcat PMC chair should be:
[ +1 ] Remy Maucherat
[  ] Yoav Shapira 

Next year I'll switch, Yoav is great - I just think Remy deserves to be 
the first chair...

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


Re: TLP Draft Proposal

2005-03-23 Thread Costin Manolache
Remy Maucherat wrote:
Costin Manolache wrote:
Yoav Shapira wrote:
If Remy is interested, I think it would be fair to have a vote. If 
whoever is first later decide he had too much politics/admin pains - 
we'll have a backup ready :-)

At this point, I think I cannot avoid being a candidate. Yoav may be the 
best chair, however, so there's an opportunity for a real election.
Good. Let's get this over then.
I never liked one candidate elections or elections with 99% results ( 
remind me of an evil system :-)

Yoav would be an excelent chair - however Remy has my vote this time.

I'm at the moment in favor of allowing non consecutive one year terms. 
Of course :-)
Costin
Unfortunately, it means two people can share the job, which would defeat 
the purpose, but without this, we could run out of worthy/willing 
candidates pretty fast.

I don't know what are the rules wrt board meetings ( if only the pmc 
is allowed, etc ), but while there is only one pmc chair, we can have 
as many volunteers as we want to help with the admin stuff - reports, 
etc( if I remember, Henri was doing this long before he became chair 
of jakarta pmc, same for Geir ).

Right.
So it's great to have as many people as possible volunteer for the 
unpleasand admin work - it will only make the admin job easier, and 
it'll make the rotation transition easier too.

Rémy

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


Re: TLP Draft Proposal

2005-03-23 Thread Costin Manolace
Remy Maucherat remm at apache.org writes:

 
 Peter Lin wrote:
  my non scientific tests with jdk1.5 using JMeter tells me it's a bit
  faster than jdk1.4, but I doubt it is faster than SWT. If I had more
  free time, I would definitely be interested in a SWT admin
  application.  oh well, that's life :)
 
 As you may have noticed, I do like some of the Eclipse stuff (and I use 
 Eclipse-the-IDE itself). Regardless of its performance (which is 
 actually bad on non Windows systems, from what I understand), I would 
 however have to veto usage of SWT, given the better overall performance 
 one gets with Swing.
 
 Obviously, you can try to demonstrate that this is not the case, and SWT 
 is superior on all platforms, but somehow I doubt it. The only remaining 
 benefit I see is portability to non Sun JVMs, as the free 
 implementation of Swing isn't complete yet (this seems to be progressing 
 very quickly at the moment, however).

I think you are wrong on this one.

At least on Linux ( and low-end hardware ) SWT seems to be faster, even with the
crapy GTK bindings ( that could be optimized a lot ). 

I guess what's more important in SWT is the design based on using the platform
UI instead of drawing pixels and attempting to make it look like the real
platform widgets. 

There is also the issue of complexity - SWT is a very clean and simple API.

I spent a lot of time with SWT - if I would write an UI app, it'll be my choice.

However, I think it would be more interesting to do the the admin app in XUL.
Seriously ! It'll mean it requires mozilla/firefox/etc - but I think it would be
easier to maintain and develop it, and much more interesting.  

Costin






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



Re: TLP Draft Proposal

2005-03-23 Thread Costin Manolace
Henri Yandell flamefew at gmail.com writes:

 However, SVN has sufficient advantages on the server-side for the
 people administrating the Apache boxes to long for it, and the choice
 of techs is a balance between various people's requirements.
 
 I've nudged Infra to see if they're planning to propose the
 CVS-tuning-off proposal to the community soon, as the earlier the
 better. 

Propose or impose ? Typically 'propose' means the community would have some
way to say 'yes' or 'no'.

I agree SVN is better - and for a new project it would certainly be the top
choice. But I can't believe maintaining cvs for existing projects ( or the few
projects that chose to keep using it ) is such a huge burden. 

If this is an issue of resources - will this be solved if someone would
volunteer to maintain it ? Or maybe if some company would donate the money for a
hosting service ( like openoffice.org or java.net seem to work ) ? 

Costin


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



Re: TLP Draft Proposal

2005-03-23 Thread Costin Manolache
Jim Jagielski wrote:
The PMC Chair has ultimate authority, since the position is board
appointed and results in the Chair being a VP of the ASF. There's
no precedent for sharing the role or having a co-Chair. The PMC
Chair is the point man for the PMC.
Yes, we know - that's one of the reasons some people want this to be a 
'rotating' position.

Sharing the role ( i.e. the tasks ) has a lot of precedents.
I have no problem with someone having this kind of authority - in 
projects like Linux or Python, where the guy in charge created the 
project in the first place. I am not confortable at all with having the 
'ultimate' authority appointed - even when (in most cases) it is at the 
recomandation of the community. IMO it is the worse of both worlds.


The PMC Chair is nominated by the PMC, and the recommendation is
sent in with the PMC resolution. The board then debates the issue
and will usually approve the resolution and appoint the nominated
person as chair.
Since the PMC Chair is the main guy for the PMC, it is even more
an issue for that person to be very much an ASF weenie and
understand and embrace the Apache Way... It can be a
political and managerial kind of position and any candidate
should realize that sad fact :/
Well, Remy and Yoav are members of ASF - so they clearly passed the 
'Apache Way' test. If this is a requirement - than the pool of 
candidates is going to be quite small ( Remy, Yoav, you, Bill - and 
Craig or Justina if they choose to get back )

For 'managerial' and 'political' - I think both did both ( maybe without 
enjoying it, but still...)

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


Re: TLP Draft Proposal

2005-03-22 Thread Costin Manolache
Yoav Shapira wrote:
 NOW, THEREFORE, BE IT FURTHER RESOLVED, that [XXX]
   be appointed to the office of Vice President, Apache Tomcat, to
   serve in accordance with and subject to the direction of the
   Board of Directors and the Bylaws of the Foundation until
   death, resignation, retirement, removal or disqualification, or
   until a successor is appointed; and be it further
+1
I would like to propose Remy == XX ( he can obviously refuse, but I 
hope he will not do that ). Obvious reasons on why he is the best 
choice, so I don't think consensus will be a problem - only his 
acceptance ( it'll not involve too much coding :-).

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


Re: TLP Draft Proposal

2005-03-22 Thread Costin Manolache
Jim Jagielski wrote:
Yoav Shapira wrote:
Hi,
I could... But there's the question of whether we want all committers on the
PMC or just the active ones.  The avail file has, in addition to the people
I already listed:
duncan,jon,rubys,akv,jhunter,preston,shemnon,shachor,bergsten,gonzo,mode,har
ishp,arun,craigmcc,jluc,nacho,aried\
el,horwat,ed,alex,gaburici,jiricka,pierred,glenn,larryi,arieh,marcsaeg,danmi
l,shai,keith,kief,melaquias,m\
braden,clucas,bip,seguin,mmanders,andya,ccain,bojan,patrickl,jazmin,ekr,manv
een,cks,denisb,dsandbe\
rg,bobh,idarwin,johnturner,ecarmich,fuankg,clar,jim,wrowe
John Turner, Jim J., Bill Rowe are obviously active, I'll add them right
now.  But many of the above are not active, emeritus committers...

Personally, I would agree if people did not think I deserved PMC
member status. I would be honored to accept, but would 100% understand
if there were, well... thoughts that it was unwarranted :)
I hope that Tomcat PMC will be one where each active committer who is
willing will be a member, I don't want it to be an arbitrary and random
process like it was in jakarta ( or asf membership ). If you are working
on tomcat, I can't see why not be in PMC ( unless you really don't want to )
I don't know if I deserve it tough - since I haven't been very active
last year - but since my project is now over, I hope to get back on
tomcat and become active :-)
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: TLP Draft Proposal

2005-03-22 Thread Costin Manolache
Yoav Shapira wrote:
Hi,

I would like to propose Remy == XX ( he can obviously refuse, but I
hope he will not do that ). Obvious reasons on why he is the best
choice, so I don't think consensus will be a problem - only his
acceptance ( it'll not involve too much coding :-).

I was thinking Remy might refuse, so he doesn't have to deal with all the
administrative stuff that comes with the role.  That and my own interest in
the role prevent consensus at this point ;)  
It Remy will refuse - you have my vote :-) It's just that he done so 
much coding in this project - that I think it would be good if he is the 
first chair.

I think the idea of rotating ( let's say yearly ? ) would be an excelent 
one - it'll avoid having people serve for too much ( and sometimes avoid 
bad habbits - like forgeting to ask the community before making 
important decisions :-)

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


Re: TLP Draft Proposal

2005-03-22 Thread Costin Manolache
Yoav Shapira wrote:
Howdy,

I think the idea of rotating ( let's say yearly ? ) would be an excelent
one - it'll avoid having people serve for too much ( and sometimes avoid
bad habbits - like forgeting to ask the community before making
important decisions :-)
That's a decent plan. What do the other projects do about that ?

Logging Services, which formed just recently, has a yearly PMC chair term,
but the incumbent can repeat the role if the PMC so votes.
Sounds ok - I would preffer a real rotation. What about 'can repeat the 
role if he wants and there is no other candidate' ? ( if he doesn't want 
- of course, someone else needs to be 'volunteered' ).

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


Re: TLP Draft Proposal

2005-03-22 Thread Costin Manolache
Yoav Shapira wrote:
Hola,

What do you guys (parties in the subject) have to say about that?
Lat's put all the cards on the table, do what ever is needed and move
forward. I'm getting tired of all that politic bullshit, but I'm also
aware it must be done. So ... Remy, Yoav?

I'm waiting to hear from Remy on what he wants to do.  He has to want to be
the PMC chair ;)  If he does want it and all the admin stuff that goes with
it, it's fine with me.  The role of a VP is something we can define, but
doesn't really exist within other ASF projects, which just have the PMC
chair and the rest of the PMC, so I don't think we need one.
If Remy is interested, I think it would be fair to have a vote. If 
whoever is first later decide he had too much politics/admin pains - 
we'll have a backup ready :-)

I don't know what are the rules wrt board meetings ( if only the pmc is 
allowed, etc ), but while there is only one pmc chair, we can have as 
many volunteers as we want to help with the admin stuff - reports, etc( 
if I remember, Henri was doing this long before he became chair of 
jakarta pmc, same for Geir ).

So it's great to have as many people as possible volunteer for the 
unpleasand admin work - it will only make the admin job easier, and 
it'll make the rotation transition easier too.


Costin
I'm also fine with the annual rotation as suggested by Costin.
Yoav

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


Re: Changing the Tomcat5 WIN32 service runner

2005-02-24 Thread Costin Manolache
Mladen Turk wrote:
@if %1 == install   goto cmdInstall
@if %1 == uninstall goto cmdUninstall
@if %1 == start goto cmdStart
@if %1 == stop  goto cmdStop
@if %1 == restart   goto cmdRestart
echo Usage
goto cmdEnd

I assume the '.bat' is the only option - i.e. could you use arbitrary 
'executables' or other 'scripting languages' ? I.e. if you have cygwin 
or equivalent installed - could it execute a .sh ? Or if you have 
different scripting engine - could it run the .js or .py instead of 
.bat? And the most interesting - could you specify an executable .jar as 
the command ?

It's just that .bat is one of the ugliest scripting languages...
Having the unix-style service mechanism, i.e. a script with 
start/stop/etc is IMO a step forward and makes it much easier to
deal with services.

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


Re: [VOTE] Propose Jim Jagielski and William A. Rowe as JakartaTomcatConnectors commiters

2005-02-23 Thread Costin Manolache
Both +1, of course.
I guess you meant 'commiters for jakarta tomcat project' :-)
Costin
Mladen Turk wrote:
I'd like to nominate Jim Jagielski ([EMAIL PROTECTED]) and
William A. Rowe ([EMAIL PROTECTED]) as commiters for the
JTC connectors.
Both of them are long time ASF members. Jim is even a
director of Apache Software Foundation.
They both are core apache httpd designers and developers
for years now, and IMHO we should be proud tho have them
on board :). I'm sure they will help us with the better
apache httpd integration.
So...
[x] Yes, Jim is really a cool guy.
[ ] No way.
and..
[x] Sure, wellcome Bill.
[ ] I think I know httpd better then him.
The both have my ++1.
Regards,
Mladen

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


Re: Changing the Tomcat5 WIN32 service runner

2005-02-23 Thread Costin Manolache
William A. Rowe, Jr. wrote:
At 06:31 AM 2/21/2005, Mladen Turk wrote:

Unlike any other java or java/jni implementations
it does not tries to make a java as a service, but
rather makes a batch (.bat) file as a service.

IIUC, that means;
  1. service signals (shutdown etc) aren't recognized by cmd 
 (sh for you linux observers) in any useful manner.

  2. it invokes cmd, which invokes the apps.  You are stuck
 with an instance of cmd for the lifetime of the process.
Seems like a big leap backwards, IMHO.  If anything, a psuedo-sh
script interpreter which picked up the envvar assignments (the
only thing you want to move to .cmd for, anyways) makes more
sense than this.
Would it be possible to have the signals intercepted and cause the
execution of the .bat file with different params ( like 'stop' or 
'reload' or 'start' ), similar with unix init.d files ?

I like the idea of running a .bat ( or arbitrary .exe ) as a service 
based on the analogy with the init.d files - but it needs the 
stop/restart as well.

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


Re: SVN migration?

2005-02-04 Thread Costin Manolache
Well, numbers are statistics do speak for themself - but may tell 
different things. Apache may have most projects in SVN, but the world 
has most projects in cvs. And most tools (finally) have some good, first 
class built-in support for CVS, most people are (finally) familiar 
enough with using cvs. There are some plugins for svn ( and other 
version control tools ) - but not at the same level.

I like SVN a lot - and for a new project probably I would choose it if 
there is a choice - sf.net or other places are cvs only.  But I don't 
think all the pain for switching tomcat is justified, and switching few 
repositories but not others is even worse.

Unless we're going to do major reorganization of the code ( move 
directories around ) or we start some complex branches, or we have any 
other need where SVN is much better than CVS - I would say it's better 
for everyone to stick with the stable environment.

Costin

Henri Yandell wrote:
I've not heard anything about it being mandatory yet, but the numbers
speak for themselves.
The www.apache.org site has 24 coding projects. There are 22 projects
listed on the svn.apache.org/viewcvs.cgi page. 2 of those are dead, so
20 out of 24 ASF projects have an svn presence of some kind.
The people still left with readable CVS modules are:
mod_perl
ant
2/3rds of jakarta
possibly gump (though they have an svn module too)
apache conference
most of xml
logging
half of web services
So I assume at some point there'll be pressure to turn off the CVS server.
On the command line, svn is pretty much the same as cvs. Some bits are
faster, some slower. There are various improved features
(http://subversion.tigris.org/ lists them) that people have been
asking for for ages with CVS.
Habit-wise, the only differences I've hit are:
1) you checkout from a url, not from a cvs-root and a path.
2) tagging/branching is done by copying a directory revision (really
creating a symlink-style thing in the database) and isn't applied to
every file individually.
Tool-wise, Subclipse is an Eclipse plugin that seems to work fine for
standard development (checkout, update, diff, commit). I'm unsure
whether you can create tags/branches using it as I always do that on
the command line, be it cvs or svn. IntelliJ has a plugin and the next
version will have it built in. TortoiseSvn is spoken well of, and I
can vouch for svn on linux/OS X, I've had no problems in the last year
of use.
Docs are docs :) Yep, they'll need updating. 

Build scripts. Do you have scripts that check modules out of cvs? If
so I imagine the ant support for svn might be a big deal. Unsure what
it's like.
Hen
On Thu, 03 Feb 2005 21:32:41 -0800, Costin Manolache
[EMAIL PROTECTED] wrote:
Is this mandatory ? I suspect there'll be a lot of build
script/doc/habits/tool changes involved. CVS is working reasonably well
at the moment, and a lot of tools have (finally) very good support for it.
Costin
Henri Yandell wrote:
Just wondering if the Tomcat community have any thoughts on a
migration to Subversion?
The process seems pretty easy, though Tomcat may be more complicated
than the usual CVS module. Infra have the process documented at:
http://www.apache.org/dev/cvs2svn.html
The Jakarta status is in the wiki at:
http://wiki.apache.org/jakarta/Migrating_20to_20Subversion
The aim would be for all the tomcat modules to migrate into
asf/repos/jakarta/tomcat/ so that we can have a cleaner top-level
structure to the system, within that though the Tomcat community are
free to choose whatever strategy fits.
I've intentionally left Tomcat until last to nudge about this so as to
build up some experience within Jakarta of dealing with SVN as users
and as a migration. Some of you are probably already getting to grips
with svn following the Commons migration.
Just to provide the context for this, the Infra group are looking to
move from CVS to SVN in the long term and Jakarta were far and away
the main laggards in this. In the last month or so, a third of Jakarta
has moved over, so that's now improving.
Another question is whether the Tomcat community have any svn
expertise in terms of planning svn strategies, or whether we should
try to find some other committers to offer opinions.
Thanks,
Hen
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


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


Re: cvs commit: jakarta-tomcat-connectors/jni/native/src ssl.c

2005-02-03 Thread Costin Manolache
I assume this is going to be a compile/configure time option ?
What about using a different approach - generate multiple .so files, one 
with common/base/non-optional functionality, and one for each optional 
library. Compile time options makes it hard to distribute compiled 
binaries and add more requirements.


Costin
[EMAIL PROTECTED] wrote:
mturk   2005/02/02 23:47:49
  Added:   jni/native/src ssl.c
  Log:
  Add OpenSSL support.
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-connectors/jni/native/src/ssl.c
  
  Index: ssl.c
  ===
  /* Copyright 2000-2004 The Apache Software Foundation

   *
   * Licensed under the Apache License, Version 2.0 (the License);
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an AS IS BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  

  #include apr.h
  #include apr_pools.h
  #include apr_file_io.h
  

  #include tcn.h
  

  #ifdef HAVE_OPENSSL
  

  /* OpenSSL headers */
  #include openssl/ssl.h
  #include openssl/err.h
  #include openssl/x509.h
  #include openssl/pem.h
  #include openssl/crypto.h
  #include openssl/evp.h
  #include openssl/rand.h
  #include openssl/x509v3.h
  /* Avoid tripping over an engine build installed globally and detected
   * when the user points at an explicit non-engine flavor of OpenSSL
   */
  #if defined(HAVE_OPENSSL_ENGINE_H)  defined(HAVE_ENGINE_INIT)
  #include openssl/engine.h
  #endif
  

  

  

  

  

  

  

  

  #else
  

  

  #endif

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


Re: The FIX - Shutdown not working under SLES8 and FC2

2005-02-03 Thread Costin Manolache
What about:
- add this information to the bug report
- send a patch to the FAQ or edit a wiki page ( well, the tc wiki is not 
very used, but probably google will find this if anyone has a similar 
problem ). Or post it in your weblog/site/etc for google to find.

It should be obvious changing the default configuration only to deal 
with this case won't happen. If a computer can't locate itself by name - 
you'll have a lot of other problems.

Costin
( BTW - if you plan to participate in any open source project - be 
prepared for a lot of hurt feelings and negative comments, if you can't 
handle it, stay out. It happens to all of us. Track the problem, send a 
patch and friendly reminders if it gets ignored - and be prepared to 
accept a 'no' )

[EMAIL PROTECTED] wrote:
After some playing around I think I've tracked down what the fix is, and
I'd like to throw an idea out as to what could be happening.
First the fix. The fix is to explicitly state in the AJP13 connector
that the connector should ONLY bind to the loopback address (i.e. add
address=127.0.0.1). Maybe this should be made the default because;
a) it's a fix to the issue.
and
b) it also enhances security. 

Those people who are using AJP13 between machines should have the
knowlege to re-configure the connector to allow connections between
different machines.
Now the suggestion as to why this is happening. 

My machine is behind a firewall, and therefore has non-routable IP
addresses (192.168.x.x). If you lookup the full hostname (a.b.c.d) on
the machine the hosts file resolves it to the private IP, if you look
it up using DNS it resolves to the public IP address of the firewall.
If you lookup the machine name only (a) from on the machine or anywhere
else it resolves via DNS to the public IP of the firewall.
From what I can tell the AJP13 connector looks up the hostname only,
(which resolves it to the public IP address), then tries to connect to
the AJP13 port on the public IP address, and because the firewall
blocks this traffic, does not connect, and then gives up.
To back this up I have put the hostname on it's own into the hosts file
(i.e. a resolves to the private IP), and everything worked again.
Before everyone shouts you've got a strange config, it's your problem,
I'd like to re-iterate that this issue can be avoided in many ways, and
my personal beleif is that the order of preference of fixes would be;
1) Add the address=127.0.0.1 to the default server.xml (which also has
the side effect of increasing security).
2) If no address is specified then make the shutdown system start by
trying to connect to localhost as opposed to what seems to be the
current behaviour of attempting to resolve to an external address
first.
3) Require everyone to have the short hostname configured to resolve to
their local IP.
The reasons for this ordering is that 1 is the least effort by the
fewest people, 2 is more effort but by a small group, 3 has a potential
impact on all users and no matter where you document it will still be
missed by those who beleive in unpack and run.
Regards,
Al.
Al Sutton [EMAIL PROTECTED] wrote on 03.02.2005, 07:58:16:
Ben,
Thanks for this. I'm not using any settings in JAVA_OPTS as shown below;
[EMAIL PROTECTED] al]$ env | grep -i JAVA
JRE_HOME=/usr/java/jdk1.4/jre
PATH=/usr/java/jdk1.4/bin:/home/al/utils/apache-ant-1.6.2/bin:/usr/kerberos/
bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
JAVA_HOME=/usr/java/jdk1.4
[EMAIL PROTECTED] al]$
I've tried this on two machines, one an Athlon XP 2400+ running FC2, and the
other a Dual Xeon 2.8 GHz running SLES 8, both showed the same problem, so
I'm pretty sure it's not hardware. The machines are also geographically
seperated and do not operate on the network (ones on my LAN at home, the
others on a LAN at work), so I'm pretty sure it's not related to the
environment external to the machine.
I'm going to upgrade to _07 and get the latest kernel and try again, as
currently the only difference seems to be that your execting startup and
shutdown from within the bin directory and I'm executing it from the top
level (i.e. doing bin/startup.sh and bin/shutdown.sh).
Thanks again,
Al.
-Original Message-
From: Ben Souther [mailto:[EMAIL PROTECTED]
Sent: 02 February 2005 23:32
To: Tomcat Users List
Subject: RE: Shutdown not working under SLES8 and FC2
On Wed, 2005-02-02 at 17:11, Ben Souther wrote:
On Wed, 2005-02-02 at 16:43, Al Sutton wrote:
Hmmm The latest updates gives me;
Linux host 2.6.10-1.9_FC2 #1 Thu Jan 13 17:54:57 EST 2005 i686 athlon
i386
GNU/Linux
and I'm on JDK 1.4.2_06 as opposed to _05.
Would it be possible for you to upgrade?, I'd like to have the exact
same
environment, but please don't put yourself out or risk a critical
environment.
OK, here you go.
It turns out that I did have _06 on this machine. I also have
2.6.10-1.9_FC2 (which is no longer the latest BTW ;)).
Once again, I started and stopped without a problem.
Here is the screen dump

Re: The FIX - Shutdown not working under SLES8 and FC2

2005-02-03 Thread Costin Manolache
Al Sutton wrote:
Is there any reason why it doesn't try localhost first? Using localhost
before anything else would have the following benefits;
a) Would ensure that only really strange network configs would be affected
(i.e. those where localhost is not the local host).
b) Make use of the speed advantage some OS's have in their implementation of
the loopback address.
c) Avoid any wacky differences in the implementation of
InetAddress.getLocalHost() between JVMs/OSs/etc.
Off the top off my head I can't see the advantages of using the result of
InetAddress.getLocalHost() first.
What do you mean by 'try localhost first' ? The name 'localhost', or 
'127.0.0.1' or whatever the number is in IPV6 ? I guess the reason for 
InetAddress.getLocalHost() is the wacky differences between OSes :-),
and if it's broken on a platform - it should be fixed ( by Sun or OS 
vendor )

Costin


Al.
-Original Message-
From: Bill Barker [mailto:[EMAIL PROTECTED]
Sent: 03 February 2005 19:11
To: Tomcat Developers List
Subject: Re: The FIX - Shutdown not working under SLES8 and FC2
If no address is configured, ChannelSocket attempts the shutdown on
InetAddress.getLocalHost().  Personally, I'm not inclined to change this as
it points to a network configuration problem if this is unreachable.
However, you might try complaining to Sun about how they have implemented
getLocalHost on SLES8.
- Original Message -
From: [EMAIL PROTECTED]
To: Tomcat Users List tomcat-user@jakarta.apache.org
Cc: tomcat-dev@jakarta.apache.org
Sent: Thursday, February 03, 2005 2:14 AM
Subject: The FIX - Shutdown not working under SLES8 and FC2

After some playing around I think I've tracked down what the fix is, and
I'd like to throw an idea out as to what could be happening.
First the fix. The fix is to explicitly state in the AJP13 connector
that the connector should ONLY bind to the loopback address (i.e. add
address=127.0.0.1). Maybe this should be made the default because;
a) it's a fix to the issue.
and
b) it also enhances security.
Those people who are using AJP13 between machines should have the
knowlege to re-configure the connector to allow connections between
different machines.
Now the suggestion as to why this is happening.
My machine is behind a firewall, and therefore has non-routable IP
addresses (192.168.x.x). If you lookup the full hostname (a.b.c.d) on
the machine the hosts file resolves it to the private IP, if you look
it up using DNS it resolves to the public IP address of the firewall.
If you lookup the machine name only (a) from on the machine or anywhere
else it resolves via DNS to the public IP of the firewall.
From what I can tell the AJP13 connector looks up the hostname only,
(which resolves it to the public IP address), then tries to connect to
the AJP13 port on the public IP address, and because the firewall
blocks this traffic, does not connect, and then gives up.
To back this up I have put the hostname on it's own into the hosts file
(i.e. a resolves to the private IP), and everything worked again.
Before everyone shouts you've got a strange config, it's your problem,
I'd like to re-iterate that this issue can be avoided in many ways, and
my personal beleif is that the order of preference of fixes would be;
1) Add the address=127.0.0.1 to the default server.xml (which also has
the side effect of increasing security).
2) If no address is specified then make the shutdown system start by
trying to connect to localhost as opposed to what seems to be the
current behaviour of attempting to resolve to an external address
first.
3) Require everyone to have the short hostname configured to resolve to
their local IP.
The reasons for this ordering is that 1 is the least effort by the
fewest people, 2 is more effort but by a small group, 3 has a potential
impact on all users and no matter where you document it will still be
missed by those who beleive in unpack and run.
Regards,
Al.
Al Sutton [EMAIL PROTECTED] wrote on 03.02.2005, 07:58:16:
Ben,
Thanks for this. I'm not using any settings in JAVA_OPTS as shown below;
[EMAIL PROTECTED] al]$ env | grep -i JAVA
JRE_HOME=/usr/java/jdk1.4/jre
PATH=/usr/java/jdk1.4/bin:/home/al/utils/apache-ant-1.6.2/bin:/usr/kerberos/
bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
JAVA_HOME=/usr/java/jdk1.4
[EMAIL PROTECTED] al]$
I've tried this on two machines, one an Athlon XP 2400+ running FC2, and
the
other a Dual Xeon 2.8 GHz running SLES 8, both showed the same problem, so
I'm pretty sure it's not hardware. The machines are also geographically
seperated and do not operate on the network (ones on my LAN at home, the
others on a LAN at work), so I'm pretty sure it's not related to the
environment external to the machine.
I'm going to upgrade to _07 and get the latest kernel and try again, as
currently the only difference seems to be that your execting startup and
shutdown from within the bin directory and I'm executing it from the top
level (i.e. doing bin/startup.sh and bin/shutdown.sh

Re: SVN migration?

2005-02-03 Thread Costin Manolache
Is this mandatory ? I suspect there'll be a lot of build 
script/doc/habits/tool changes involved. CVS is working reasonably well 
at the moment, and a lot of tools have (finally) very good support for it.

Costin
Henri Yandell wrote:
Just wondering if the Tomcat community have any thoughts on a
migration to Subversion?
The process seems pretty easy, though Tomcat may be more complicated
than the usual CVS module. Infra have the process documented at:
http://www.apache.org/dev/cvs2svn.html
The Jakarta status is in the wiki at:
http://wiki.apache.org/jakarta/Migrating_20to_20Subversion
The aim would be for all the tomcat modules to migrate into
asf/repos/jakarta/tomcat/ so that we can have a cleaner top-level
structure to the system, within that though the Tomcat community are
free to choose whatever strategy fits.
I've intentionally left Tomcat until last to nudge about this so as to
build up some experience within Jakarta of dealing with SVN as users
and as a migration. Some of you are probably already getting to grips
with svn following the Commons migration.
Just to provide the context for this, the Infra group are looking to
move from CVS to SVN in the long term and Jakarta were far and away
the main laggards in this. In the last month or so, a third of Jakarta
has moved over, so that's now improving.
Another question is whether the Tomcat community have any svn
expertise in terms of planning svn strategies, or whether we should
try to find some other committers to offer opinions.
Thanks,
Hen

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


Re: DO NOT REPLY [Bug 33339] - Shutdown script down not work

2005-02-02 Thread Costin Manolache
[EMAIL PROTECTED] wrote:
3) Cygwin is definatley NOT a good platform for testing Linux bugs on.
However testing with all possible linux distributions is not a good 
choice either.

And distributions based on 'latest' version of everything plus all kind 
of experimental/non stable/vendor specific stuff -  like fedora - are 
not the best choice for a supported platform.

Can you reproduce it on RHEL or RH9 ?  If not - report the bug on fedora.
4) Do you want to tell the Fedora guys that the Tomcat developers
official view of Fedora Core 2 is that its' a crappy distro?
It is not 'official view' - but some developers have issues with FC :-)

5) Do you expect me to re-install my system just to get Tomcat working?,
It's easier to replace Tomcat with Jetty than it would be to resintall
my machine with one of the distros that you don't consider crappy
I believe a lot of products ( and not only java ) officially support 
only few distributions. We can't ask you to re-install your system - but 
you can't ask us to reinstall and test your favorite distro either. 
There are just too many incompatible linux distributions.

If jetty works on your linux distro - just use it. It's a fine open 
source product. Or you can use resin or any other server.


Now I'd like to help resolve this, but at the moment all I'm seeing is a
wall of not interesting, can't be bothered, lets' mark it as invalid
because I can't reproduce on my own personal setup. Which kinda
Probably the comments should be more explicit - like 'unsupported 
platform / not reproductible on supported platforms '.

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


Re: DO NOT REPLY [Bug 33339] - Shutdown script down not work

2005-02-02 Thread Costin Manolache
Well, if you can debug this and find the real cause and a fix - I'm sure
someone will look at it.
But please understand that Remy and the other tomcat developers deal 
with a lot of bugs, and usually it's frustrating to deal with bugs that 
happen only on certain situations. If Java code behaves correctly on 
most platforms - but it doesn't work on few distributions - you may as 
well report this as a bug to either Sun or the distribution. BTW, we are 
engineers, not PR people - so 'crappy' comments may happen :-)

So if you have a patch or workaround - please reopen the bug and add the 
fix. It would be a better way to spend the time instead of arguing about 
closing/not closing it or hurt feelings :-)

Costin
Al Sutton wrote:
In answer to your points;
on 3) I'm not asking for it tested on all distros, just those where issues
have arisen. If no-one has FC2 installed then thats something the group
should know about and should be able to say Sorry, no-one has FC2, rather
than Closed bug, doesn't work on [insert name of totally different platform
here].
The users mail list has a report from Drew Jorgenson if it not working on
RHAS 3, and I can confirm I've also seen the behaviour on SLES8 (i.e. a
non-redhat product), so I don't think it's distribution specific.
on 4) It's never good to write that any other groups efforts off as crappy,
I'm sure this group wouldn't be happy if the Fedora group described Tomcat
as crappy. We're all doing our best (yes, I have released some open source
code in the past), and it worried me that the crappy comment was made and
no-one else stepped in to be a bit more helpful.
on 5) Given your response I'm happy to offer help with FC2 related problems.
I wasn't willing to make this offer before because it seemed the only
responses I had were aimed more at getting the bug marked as closed than
investigating where the problem was. I'll keep an eye on the -dev list (but
unfortunatley I don't have time to look at all the bug report comments) and
if I see a problem with FC2 I will attempt to dupluicate it. In case your
wondering what my experience is I've been a Linux sys admin for 11 years,
and have been programming system in Java for about 8 years with the last 5
spent focused on developing high performance server side applications for
Teleco's and Financial institutions, which hopefully will allow me to assist
in some way.
on the last paragraph - I completely agree. If people know which platforms
are fully supported (i.e. if bugs are reported someone can test them
easilly) it will make life a lot easier. You'll probably find that in return
for listing a platform as full supported the distributor may be receptive to
including Tomcat in their product.
Costin, I'd like to thank you for the sending the first comprehensive
response which makes me feel that users bugs are taken seriously, and not
treated as something that should be closed at any costs.
Regards,
Al.
-Original Message-
From: news [mailto:[EMAIL PROTECTED] Behalf Of Costin Manolache
Sent: 02 February 2005 21:22
To: tomcat-dev@jakarta.apache.org
Subject: Re: DO NOT REPLY [Bug 9] - Shutdown script down not work
[EMAIL PROTECTED] wrote:

3) Cygwin is definatley NOT a good platform for testing Linux bugs on.

However testing with all possible linux distributions is not a good
choice either.
And distributions based on 'latest' version of everything plus all kind
of experimental/non stable/vendor specific stuff -  like fedora - are
not the best choice for a supported platform.
Can you reproduce it on RHEL or RH9 ?  If not - report the bug on fedora.

4) Do you want to tell the Fedora guys that the Tomcat developers
official view of Fedora Core 2 is that its' a crappy distro?

It is not 'official view' - but some developers have issues with FC :-)

5) Do you expect me to re-install my system just to get Tomcat working?,
It's easier to replace Tomcat with Jetty than it would be to resintall
my machine with one of the distros that you don't consider crappy

I believe a lot of products ( and not only java ) officially support
only few distributions. We can't ask you to re-install your system - but
you can't ask us to reinstall and test your favorite distro either.
There are just too many incompatible linux distributions.
If jetty works on your linux distro - just use it. It's a fine open
source product. Or you can use resin or any other server.

Now I'd like to help resolve this, but at the moment all I'm seeing is a
wall of not interesting, can't be bothered, lets' mark it as invalid
because I can't reproduce on my own personal setup. Which kinda

Probably the comments should be more explicit - like 'unsupported
platform / not reproductible on supported platforms '.
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e

Re: Postcard

2005-01-20 Thread Costin Manolache
Remy Maucherat wrote:
Allistair Crossley wrote:
*rotfl* that's not Remy at all! ;)

Those viruses are annoying, since I cannot prevent them from reaching 
the list :( As long as they use a valid subscriber's address, I cannot 
do anything. I suppose it would be caught by a spam filter though.

Rmy
Maybe a solution would be to subscribe from an address that uses SPF - 
apache checks for SPF, so it'll reject it.

I don't like SPF for many resons, but it does have its benfits :-)
Gmail.com does spf btw.
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: mod_jk jni worker - apache + number of processes

2005-01-18 Thread Costin Manolache
The only way to do in-process with apache on unix is to use a 
multithreaded MPM and a small number of processes ( and lots of 
threads). JNI is not much more efficient than IPC - or at least not
in the simplistic use. Even the applets in mozilla/konqueror/etc run out 
of process on unix ( but in-process on win and macosx ).

Writting apache modules in java has been attempted before - 
unfortunately it never quite worked, and the multiprocess issue is just 
one of the problems.

Costin
Fox,Tim wrote:
Hi Mladen -
Thanks for your reply.
I suspected as much.
My real motivation here is to basically provide a java implementation of an 
apache module or filter. I didn't want to communicate via sockets or whatever 
to a shared java process due to performance considerations.
Especially for doing stuff like setting the apache uri or filename via the 
request_rec, I thought that this would incur too much overhead.
I'm guessing this is something that has been considered before. Any ideas? 
Maybe it's already been discounted for these reasons?
Anyway, I guess this is turning into an Apache httpd question rather than a 
tomcat one! :)

-Original Message-
From: Mladen Turk [mailto:[EMAIL PROTECTED]
Sent: 18 January 2005 12:43
To: Tomcat Developers List
Subject: Re: mod_jk jni worker - apache + number of processes
Fox,Tim wrote:
Hi All-
Apologies for cross-posting from the user group - but in 
retrospect I believe this might be a better forum for this question:
I am interesting in using the in processes jni_worker with 
apache 2.0 on linux.
My question concerns the number of instances of a jvm, and 
hence tomcat that will be created.
My understanding is that, on linux the default mpm 
configuration will have multiple child server processes created.
Does that mean there will be multiple jvms and hence 
multiple tomcat instances instantiated? Or is the jvm somehow 
shared across processes?

You listed all the problems JNI connector faces on Linux, and also the
facts why JNI is unusable.

Is it a requirement of using the jni worker that the number 
of child server processes is limited to 1 in the apache config?
I would suggest that you forgot all about inprocess JNI on any
unix variant with Apache, or better all together.
Even the stupid .NET has a separate process out of IIS.
Mladen.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


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


Re: [APR-JAVA] cvs upload

2005-01-13 Thread Costin Manolache
To be honest, I don't like where this is going. I think access to native
functionality for tomcat is great - and starting with functionality 
provided by apr is ok. But there is a lot outside apr, and if this 
becomes 'apr - java interface', it won't be easy to add.

So maybe it would be better to rename it to org.apache.tomcat.jni or 
something, keep the apr stuff as 'tomcat interface with apr' ( with a 
comment that when/if apr does have an official binding - we can switch), 
and keep it open for the other non-apr stuff that may be interesting.

Costin
William A. Rowe, Jr. wrote:
At 01:56 PM 1/13/2005, Mladen Turk wrote:
William A. Rowe, Jr. wrote:
org.apache.apr... ???
If this is private, and you've suggested it should be, don't you mean
org.apache.jakarta.apr... ?
He he :)
I didn't said it should be private to J-T-C nor Jakarta.
But the fact is that we don't have OO languages infrastructure
for APR glue code. Seems to me that we'll need to go through
incubation to create self standing apr-java project, or
something like apr-oo/java.

Self standing?  If apr is borked (and the oo-dev'ers prove it)
do you want another layer in the middle?  This probably should
be closely paired to apr to ensure communications and direction.
Having them both under the same pmc ensures that the apr project
doesn't go off on some weird tangent that interferes with oo 
implementations (not that I expect this would happen.)


If you think we can make something like that in a reasonable
amount of time, count me in.

Happy to encourage it and I'll present it (with myself as a
list moderator) to the apr project, and invite our modperl
friends along with John Sterling and others who have created
C++ wrappers.

In other case I can rename the package to whatever name desired
if it breaks some policy or something like.

This sort of surprises me coming from an ASF java developer.
I seriously doubt this team would find it amusing to discover
org.apache.catalina namespaces populating an xml project's code.
-1 on appropriating another ASF project's namespace (the same -1 
I should have offered to forking proxy.) +/-0 if you want to build
on org.apache.jk.apr namespace.

Bill

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


Re: Deprecation and JK2

2005-01-11 Thread Costin Manolache
A lot of the code is actually specific to the now-dead Jk2 - if the 
native jk2 is gone, probably you should clean up this side as well.

- org.apache.jk.apr - the not-quite apr jni layer that connects to the 
native objects, as well as 'in-process' launcher ( I doubt it can be 
used by jk1.x ), also common.JniHandler

- ChannelJni, ChannelShm, ChannelUn, Shm - specific to jk2.
Maybe it would be a good idea to rename the remaining files ( but please 
not org.apache.ajp - it would be confusing since this is the name of the 
very old connector package ).

What is the story with in-process ? Is it still supported with jk1.x ?
Costin
Remy Maucherat wrote:
Henri Gomez wrote:
+0
JK / JK2 are also very specific to our current AJP implemtation.
Maybe they should be called AJP instead ?

I thouhgt I had done enough damage with my package renaming and class 
moving ;)
The renaming here is nearly all located in strings which are supposed to 
be displayed to the user when there's an error, and also in comments - 
low impact stuff.

PS: Happy New Year to all TC-DEV members :)

Rémy

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


Re: Deprecation and JK2

2005-01-11 Thread Costin Manolache
Bill Barker wrote:
- Original Message -
From: Costin Manolache [EMAIL PROTECTED]
To: tomcat-dev@jakarta.apache.org
Sent: Wednesday, January 12, 2005 4:14 AM
Subject: Re: Deprecation and JK2

A lot of the code is actually specific to the now-dead Jk2 - if the
native jk2 is gone, probably you should clean up this side as well.
- org.apache.jk.apr - the not-quite apr jni layer that connects to the
native objects, as well as 'in-process' launcher ( I doubt it can be
used by jk1.x ), also common.JniHandler
- ChannelJni, ChannelShm, ChannelUn, Shm - specific to jk2.

I think that proxy_ajp is hoping to be able to use ChannelUn someday.  It's
no more Jk2 specific than ChannelSocket is.
It is using the jk2 'object' - it can be easily rewritten to use the new 
apr library directly, but in the current form I don't see how it could 
be used without jk2 native  (and if you want to add it - it's easier to 
start from channelSocket ).




Maybe it would be a good idea to rename the remaining files ( but please
not org.apache.ajp - it would be confusing since this is the name of the
very old connector package ).
What is the story with in-process ? Is it still supported with jk1.x ?

Only the (very) old 3.3 JniHandler at the moment.
Maybe the new apr library will help improve this too.
BTW, starting in-process java in jdk1.5 ( on linux at least ) it's 
amazing, no longer requires LD_LIBRARY_PATHs and seem to 'just work'.

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


Re: [INTRODUCE] apr-java

2005-01-07 Thread Costin Manolache
Mladen Turk wrote:
Hi,
Here is the work in progress for a new project I named apr-java.
It offers a 'thin' layer using JNI over APR library.
The initial code that I wrote over a year now had
two way api, but I've decided to leave only
Java-APR.
I also have a working set of configure and make files
for unixes, but since this is an overview of the technology,
it's only a small subset of entire project, but you can get
the picture :) .
It will support around 90% of APR API (without things like
strings, etc. that are well done inside java itself).
The API itself on the Java side is done as close to the
APR function call (apr_file_write - File.write) with
almost the same function parameters as well.
You can see that the wrapping code is very thin in most
cases with only a couple of lines for each function,
mostly caused by pointer issues.
I'm sending the gz file (tried zip but failed) so you can see
what the general idea is. Of course the library can be extended
with functions that APR doesn't offer (for now or never will).
One of the things would be setting user and group for a process,
sending data from parent to child process, etc.
The question is:
Is it acceptable (think that previous discussions say it is)
Where to put that in the cvs.
Comments?
Looks good.
It seems it still does a lot of String operations in native - unlike SWT 
for example, where it's almost always byte[]. Also the typical memcpy, 
etc should be included somewhere to allow data to move from/to the pool 
and java heap.

Why not checking it in j-t-c ?
Just to make sure - you expect it to also have non-apr native methods ?
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util CharsetMapper.java

2005-01-05 Thread Costin Manolache
Remy Maucherat wrote:
Costin Manolache wrote:
Maybe:
* @author Jason Hunter, as part of the book Java Servlet Programming
* (O'Reilly). See a href=http://www.servlets.com/book;
* http://www.servlets.com/book/a for more information.
?
I think it is fair to respect the author wish for attribution.
Given that the board recomends against @author tags and they may be 
someday removed, it doesn't matter that much...

I am all in favor of giving proper attribution (author tags), but -1 on 
anything which restricts the ASF's copyright on the code (like 
advertising clauses in this case).

As a result, I have to agree with all that pointed out that the code 
should be rewritten (in this case, the encoding list must be 
reconstructed from scratch).

Rémy
There is no advertising clause in this. He made it clear that the code 
is donated to ASF, under ASF license. Mentioning that the author 
developed the code while working on a book or while being paid by a 
company can't be that bad.

I don't understand why ASF is so advertising-fobic when it comes to 
authors or companies that donate code or employee time to ASF, but until 
recently strictly required advertisment for the code owner ( ASF ) not 
only in the code, but also on the web site.


Costin

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


Re: IP issues

2005-01-04 Thread Costin Manolache
Jason Hunter wrote:
nor see why we need an exception for such a such a small amount of code.

You need an exception because (a) the code was included from a third 
party codebase and (b) a lot of research and testing went into compiling 
the map used by the mapper.

I can easily add an @author tag for you in the relevant files, but the 
comment currently creates a legal doubt.

As I wrote in my email and for the archived record, I want the classes 
to have the recognition that is expected when Apache includes code from 
a third party library that's under a license that requires attribution 
(just like Apache's).

The files says copyright ASF - but it seems that's not completely 
accurate ( I assume someone mistakenly removed your Copyright Jason 
Hunder ? ).

As an author, you should be able to keep any notice that you consider 
apropriate. If you didn't explicitely assign the coypright to ASF ( or 
to Sun ), than I don't think it would be right for anyone to remove your 
name or attribution.

If you did assign the rights to ASF - then as you know anything can be 
removed or changed by the new owner, including @author tags or any 
mention of previous author ( just make sure your name does gets into 
whatever obscure file lists all people who contributed something ) :-)


Note: Many companies and individuals donated more than these 10 lines 
of code, 


Yes, and I too donated plenty of code to the Tomcat codebase.  But these 
classes I donated (to Sun at the time) with attribution because they 
were from a separate, pre-existing codebase with a life of its own.

If you write a book and include a paragraph from someone else's book 
with permission, you mention it and you point at the source of the 
original work.  You don't just say, Written by author X you say, 
Written by author X as part of book Y, published by Z.  That's why the 
attribution I put on those classes includes the who, what, and where.  I 
see it as the ethical thing to do.
I fully agree. Doesn't matter how small a contribution is ( or looks at 
some later time ), keeping the reference to the author and whatever else 
the author wants to include is the right thing to do ( if the code is 
accepted and used ).

Too bad what's ethical doesn't matter that much, only copyrights and IP 
ownership  :-)


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


Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util CharsetMapper.java

2005-01-04 Thread Costin Manolache
Maybe:
* @author Jason Hunter, as part of the book Java Servlet Programming
* (O'Reilly). See a href=http://www.servlets.com/book;
* http://www.servlets.com/book/a for more information.
?
I think it is fair to respect the author wish for attribution.
Given that the board recomends against @author tags and they may be 
someday removed, it doesn't matter that much...

Costin
[EMAIL PROTECTED] wrote:
remm2005/01/04 14:14:42
  Modified:util/java/org/apache/tomcat/util/http
LocaleToCharsetMap.java
   catalina/src/share/org/apache/catalina/util
CharsetMapper.java
  Log:
  - Remove legally questionable comment. The code was properly donated to the ASF.
  
  Revision  ChangesPath
  1.3   +2 -14 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/http/LocaleToCharsetMap.java
  
  Index: LocaleToCharsetMap.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/http/LocaleToCharsetMap.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LocaleToCharsetMap.java	24 Feb 2004 08:50:04 -	1.2
  +++ LocaleToCharsetMap.java	4 Jan 2005 22:14:42 -	1.3
  @@ -14,15 +14,6 @@
*  limitations under the License.
*/
   
  -/*
  - *
  - * This class was originally written by Jason Hunter [EMAIL PROTECTED]
  - * as part of the book Java Servlet Programming (O'Reilly).  
  - * See http://www.servlets.com/book for more information.
  - * Used by Sun Microsystems with permission.
  - *
  - */
  -
   package org.apache.tomcat.util.http;
   
   import java.util.*;
  @@ -30,11 +21,8 @@
   /** 
* A mapping to determine the (somewhat arbitrarily) preferred charset for 
* a given locale.  Supports all locales recognized in JDK 1.1.
  - * This class was originally written by Jason Hunter [EMAIL PROTECTED]
  - * as part of the book Java Servlet Programming (O'Reilly).
  - * See a href=http://www.servlets.com/book;
  - * http://www.servlets.com/book/a for more information.
  - * Used by Sun Microsystems with permission.
  + * 
  + * @author Jason Hunter
*/
   public class LocaleToCharsetMap {
   
  
  
  
  1.5   +2 -8  jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/CharsetMapper.java
  
  Index: CharsetMapper.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/CharsetMapper.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CharsetMapper.java	29 Aug 2004 16:46:13 -	1.4
  +++ CharsetMapper.java	4 Jan 2005 22:14:42 -	1.5
  @@ -14,13 +14,6 @@
* limitations under the License.
*/
   
  -/*
  - * This class is based on a class originally written by Jason Hunter
  - * [EMAIL PROTECTED] as part of the book Java Servlet Programming
  - * (O'Reilly).  See http://www.servlets.com/book for more information.
  - * Used by Sun Microsystems with permission.
  - */
  -
   package org.apache.catalina.util;
   
   
  @@ -38,6 +31,7 @@
* it loads, or by subclassing it (to change the algorithm) and then using
* your own version for a particular web application.
*
  + * @author Jason Hunter
* @author Craig R. McClanahan
* @version $Date$ $Version$
*/

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


Re: adding features to Status servlet

2005-01-03 Thread Costin Manolache
Why don't you check in some of this to j-t-c or some 'proposal' area ?
AFAIK apr has a lot of functionality, but not everything is included.
It would be nice if it is not limited to apr.
Usually with JNI the hardest part is to build, distribute and then set 
it up and debug ld_library_path issues. If you do it for one library, 
it's easy to add more.

Costin
Mladen Turk wrote:
Peter Lin wrote:
that sounds great. does it have support for sysinfo?  if it does, I'll
try using your apr-java package.
No, but it's up to us to decide what will go inside.
APR is included, but I wish to leave that as open as
it could be.
It already have win32.c,unix.c and netware.c files
for platform specific stuff that APR doesn't offer.
Having sysinfo sounds good to me. WIN32 has also good
performance data gathering, and I'm sure that Netware has
them too.
I also wish to include the OS specific things from
httpd like setting group, user, sending data to child
process, etc...
What matters is that we'll have a generic native component,
with well defined build and distribution specification.
Mladen.

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


Re: adding features to Status servlet

2005-01-03 Thread Costin Manolache
Benson Margulies wrote:
For systems with a /proc file system with these statistics, this doesn't
require any JNI ... 
Yes, there are a lot of ways to workaround java limitations. /proc is 
one. But even on linux, a lot is not exposed via /proc, but ioctl.
I guess the goal is not to implement sysinfo, but have a way to get more
platform-specific information and access platform-specific features.

Costin

-Original Message-
From: Peter Lin [mailto:[EMAIL PROTECTED] 
Sent: Monday, January 03, 2005 10:04 AM
To: Tomcat Developers List
Subject: Re: adding features to Status servlet

sysinfo on unix/linux should be pretty easy. I've used windows
performance stats before when i tried to write the equivalent of the
status servlet for IIS. I will try to write an exe named sysinfo that
spits out similar performance stats.
how can I help mladen?
peter

On Mon, 03 Jan 2005 15:55:44 +0100, Mladen Turk [EMAIL PROTECTED]
wrote:
Peter Lin wrote:
that sounds great. does it have support for sysinfo?  if it does, 
I'll try using your apr-java package.

No, but it's up to us to decide what will go inside.
APR is included, but I wish to leave that as open as it could be.
It already have win32.c,unix.c and netware.c files for platform 
specific stuff that APR doesn't offer.
Having sysinfo sounds good to me. WIN32 has also good performance data

gathering, and I'm sure that Netware has them too.
I also wish to include the OS specific things from httpd like setting 
group, user, sending data to child process, etc...

What matters is that we'll have a generic native component, with well 
defined build and distribution specification.

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


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

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


Re: adding features to Status servlet

2005-01-03 Thread Costin Manolache
Or:
1. Wait for Mladen to check in the code
2. figure out how to build it and how to install it easily in tomcat ( 
and other java applications ).
3. probably add one native method. I don't think wrapping it as apr 
component makes sense ( apr is not a component system like xpcom ).
4. write the java mbean - using the native method and making all 
conversions between the native signature and java style ( if SWT-style
of jni is used - i.e. using byte[], int pointers, etc - and doing java 
adaptation in java ).

I'm as curious as you are to see the code and figure out how it can be 
used, I love jni :-)

Costin
Peter Lin wrote:
So which way would be best/better to proceed?  Since mladen has his
apr-java stuff, would it make sense to do this?
1. write native windows dll
2. write apr component
3. use apr-java to wrap apr
4. wrap apr-java with mbeans
or
1. write apr component to call system level API
2. use apr-java to wrap apr
3. wrap apr-java with mbeans
or
something completely different?
peter
On Mon, 03 Jan 2005 11:21:55 -0800, Costin Manolache
[EMAIL PROTECTED] wrote:
Benson Margulies wrote:
For systems with a /proc file system with these statistics, this doesn't
require any JNI ...
Yes, there are a lot of ways to workaround java limitations. /proc is
one. But even on linux, a lot is not exposed via /proc, but ioctl.
I guess the goal is not to implement sysinfo, but have a way to get more
platform-specific information and access platform-specific features.
Costin

-Original Message-
From: Peter Lin [mailto:[EMAIL PROTECTED]
Sent: Monday, January 03, 2005 10:04 AM
To: Tomcat Developers List
Subject: Re: adding features to Status servlet
sysinfo on unix/linux should be pretty easy. I've used windows
performance stats before when i tried to write the equivalent of the
status servlet for IIS. I will try to write an exe named sysinfo that
spits out similar performance stats.
how can I help mladen?
peter

On Mon, 03 Jan 2005 15:55:44 +0100, Mladen Turk [EMAIL PROTECTED]
wrote:

Peter Lin wrote:

that sounds great. does it have support for sysinfo?  if it does,
I'll try using your apr-java package.
No, but it's up to us to decide what will go inside.
APR is included, but I wish to leave that as open as it could be.
It already have win32.c,unix.c and netware.c files for platform
specific stuff that APR doesn't offer.
Having sysinfo sounds good to me. WIN32 has also good performance data

gathering, and I'm sure that Netware has them too.
I also wish to include the OS specific things from httpd like setting
group, user, sending data to child process, etc...
What matters is that we'll have a generic native component, with well
defined build and distribution specification.
Mladen.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


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


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


Re: adding features to Status servlet

2005-01-01 Thread Costin Manolache
Mladen Turk wrote:
Peter Lin wrote:
I'm thinking of adding system load stats to the status servlet. What
do other's think about it? It would use JNI to call a native lib and
it would only work on unix, but it would be good to have.

Well, I'm working over a year now on a project that I've called
apr-java. This is a thin (for now) wrapper around apr and apr-utils,
so it will be supported on all platforms the apr is.
Things like true shared memory, process mutexes, advanced networking,
pipes, etc. that are missing from the core Java will be supported.
Usages are many, like writing high-performance networking connector
for Tomcat, making Tomcat a Apache mpm-like server with multiple
JVMs, etc...
I hope I'll have a working start point this month, so we could discuss
is it worth the effort at all, would it fit inside JTC, commons, or
to go trough apache incubation as a separate project.
Mladen.
Anything that allows Java to do things only native apps can do instead 
of beeing as dumb as the dumbest platform is worth the effort :-)

JTC already has some apr and jni code ( it is true, using the dead jk2 
model ), why not start there and if it grows big enough move to commons?

BTW - it would be really great if it would use the SWT model, i.e. JNI 
methods matching exactly the APR signatures and param types, with 
minimal ammount of C wrapper code. It works really well, and it's the 
easiest to maintain and fastest of all JNI flavors I've seen.

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


Re: adding features to Status servlet

2004-12-31 Thread Costin Manolache
Peter Lin wrote:
I'm thinking of adding system load stats to the status servlet. What
do other's think about it? It would use JNI to call a native lib and
it would only work on unix, but it would be good to have. I would also
update JMeter in the process to display the system load average.
peter lin
Wouldn't be better to have a way to display an arbitrary mbean 
attribute, plus an mbean tracking system load ( and maybe memory/disk 
statistics ) ?

Dealing with jni is allways tricky ( including build issues, etc ) - it
is better to have it in separate modules.
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: adding features to Status servlet

2004-12-31 Thread Costin Manolache
As implementation - I assume you weren't going to add a native
method and a .so library to the standalone tomcat distribution :-)
Adding capability to StatusServlet to report arbitrary mbean attributes
would make this feature easy to add ( there is some code in 
JmxProxyServlet - but it it would be much better if integrated and made 
consistent with the status servlet ).

For the JNI + mbean implementation - it may be better to use a separate 
component ( I don't see why it would be specific in any way to tomcat - 
any jmx-based app could use this ). There are several other OS-specific
informations of interest ( including in Windows ), JMX is designed 
exactly for this - to expose management info for different systems.

Costin
Peter Lin wrote:
that's why I decided it was a good idea to ask for other's thoughts.
From a stress testing perspective, I find system load stats very
valuable. breaking tomcat isn't something I find desirable either, but
there has to be a better way to measure system load other than ssh
into the server and use top.
manually doing top or sysinfo is fine for load testing, but for
performance monitoring, something automated is desirable. My thought
was to make it optional and have it detect whether or not a native lib
for that platform exists. If it doesn't it would affect the status
servlet and would look exactly the same as it does now.
on the otherhand, if the user enables it and a native lib exists, it
could display the system load. the only other option is to lobby Sun
to add system load stats to the VM, so that it is portable across
platforms.
peter
On Fri, 31 Dec 2004 17:27:03 -0500, Frank W. Zammetti
[EMAIL PROTECTED] wrote:
I would personally have some reservations about doing this... It's a
little better if it's a module you can activate and deactivate, but still...
First, if it's not something you can do cross-platform, I'm not sure I'd
like it.  AFAIK Tomcat is nicely cross-platform now, anything that
breaks that wouldn't be good I think.  I understand this would be an
optional component (right?), so it wouldn't actually be *breaking*
anything, but the expectation I think is that anything in Tomcat works
on all platforms, so would it be a good thing to introduce something
that doesn't fit that mold?
Second, and more importantly, it doesn't feel right to me to expose this
type of information through an app server.  Your talking about
statistics that aren't truly related to the app server, although is
certainly affected by the app server, so it's debatable whether they
should be there or not.  I agree this is useful information to have
access to, but I'm not sure it'd be the right place for it.
Have you considered maybe making this part of some Commons package?
Make it something that any app could make use of, that might be a very
nice thing.  Heck, it might be somewhere in there already for all I know.
Just my thoughts on it anyway.
--
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
Peter Lin wrote:
it could be a separate module. It definitely should use MBean. In
terms of getting the CPU load stats, I was thinking of calling the
standard sysinfo loads[].
Is there some other way of getting the system load stats? or CPU
stats? that doesn't require calling native code?
peter
On Fri, 31 Dec 2004 13:13:54 -0800, Costin Manolache
[EMAIL PROTECTED] wrote:

Peter Lin wrote:

I'm thinking of adding system load stats to the status servlet. What
do other's think about it? It would use JNI to call a native lib and
it would only work on unix, but it would be good to have. I would also
update JMeter in the process to display the system load average.
peter lin
Wouldn't be better to have a way to display an arbitrary mbean
attribute, plus an mbean tracking system load ( and maybe memory/disk
statistics ) ?
Dealing with jni is allways tricky ( including build issues, etc ) - it
is better to have it in separate modules.
Costin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


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



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


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


Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp13_worker.c

2004-11-11 Thread Costin Manolache
Mladen Turk wrote:
jean-frederic clere wrote:
Mladen Turk wrote:
Costin Manolache wrote:
Are you joking :-) ?

If we can not alloc couple of bytes from the system, then the
entire system is unstable.

Or that the process that makes the malloc() has reached a configurable 
limit of the amount of memory it is allowed to use.


Sure, but the system is still unusable.
This checking is done inside worker_factory, called from init_jk,
so IMHO the apache will fail long before.
But if everyone thinks it's a good to check for failed memory
allocation on small objects, I'll revert the patch.
Well, I see your point - probably it doesn't matter much, I'm sure other 
places in code will not check and it would crash anyway. Most OSes use 
swap, so the system will trash and become unuseable before running out 
of memory. But there are other cases where the swap is not used - and 
then malloc failure is a common condition under load.

If the system is very loaded, it is possible you'll run low on memory 
and you don't know which malloc will fail - maybe the small one. The 
correct behavior would be to give up and return a 500 on the request ( 
that may go through since apache probably already have the memory 
allocated in the memory pools ). On single process/multithread systesm, 
an apache server crashing under load is not a good thing :-)

IMO all mallocs should be checked - but probably I spend too much time 
with systems with very little memory where a crash is not such a good 
thing :-)

Costin
Costin



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


Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp13_worker.c

2004-11-10 Thread Costin Manolache
Mladen Turk wrote:
David Rees wrote:
Are you sure it's a good idea to wait until it crashes rather than 
fail in a controlled method?  How much overhead is there to check 
aw-name for NULL?  Can't be much...

Yes I am.
Look, if the system can not alloc 1000 bytes of memory what's
the purpose to continue?
Mt.
Are you joking :-) ?
At least do an printf and exit(), coredump is never good  (some systems 
don't collect the core - so the user will have no idea what just 
happened ).

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


Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector RequestFacade.java LocalStrings.properties

2004-11-02 Thread Costin Manolache
Remy Maucherat wrote:
Jan Luehe wrote:
Bill Barker wrote:
 

In the case I was referring to, some project was storing a
servlet request (facade) in a ThreadLocal and, due to a bug in their
code, was hanging on to it beyond the request's lifetime. This was
happening only under rare circumstances.
 

Great use case. And the talented programmer who coded that thing 
couldn't figure out what the problem was quickly enough without a proper 
error message, I assume ;)

So in this case, the Request behind the facade was indeed null.
 

So now he'll get an error message saying null request. Actually, it 
sounds like one of these useless M$ error messages.

Lol and +1 for Bill's suggestion to change text to if you're reading 
this, you're a moron :D
As long as the exception doesn't get into the web browser of some user :-)

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


Re: contrib directory

2004-11-01 Thread Costin Manolache
Garrison, Meg wrote:
Hi Leslie,
I'm also willing to maintain the HP OpenVMS scripts.  Rather than create
a whole new project (tomcat-contrib) maybe it would be possible for the
Tomcat folks to grant us commit access to a single module/folder in
their CVS library (a contrib folder of some sort).  Then they wouldn't
have to worry about committing our changes, etc..  If we misbehave and
don't follow their rules, then they have the option to boot us out.
That's how the NetBeans project does it.  For example, I have commit
powers in the core module, which is where the OpenVMS launcher lives,
but no other.  Our needs for NetBeans (as yours, I'm sure) require that
the default Tomcat distribution contain our launcher somewhere...it
doesn't have to be in /bin.
It would be a good idea, but I don't think it is possible at the moment.
Commit access requires a unix account on a machine, at least for cvs. 
Even if this could be solved - there are non-technical problems, ASF 
requires a CLA, and a certain review and oversight process.

Ant has an ant-contrib project on sourceforge ( including few ant 
committers ). Maybe we should have a tomcat-contrib as well. This would
be a good idea even for committers - there is experimental stuff and 
code that is not necesarily servlet container but is tomcat related (
like non-http servers, etc ).


Costin

Any other ideas?
Meg 

-Original Message-
From: Leslie Kishalmi [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 29, 2004 5:29 PM
To: Shapira, Yoav
Cc: Tomcat Developers List; Garrison, Meg
Subject: Re: contrib directory

Dear all,
  I'm willing to spend some of my limited free time to collect, organize
and maintain these contributed code.
However, it is very unlikely that I would be ever a committer on this
project with my OS/2 launchers.
So, as Yoav said, we could find an other committer. Or we could create
an other project something like tomcat-contrib where we maintain our
code.
Best regards,
Leslie Kishalmi
Shapira, Yoav wrote:

Hi,
Yeah, it's gone for now.  The reason is that the maintenance aspect is 
too hard for the long term.  While I don't doubt the quality of you (or

anyone else's) work, nothing is perfect.  It is inevitable that the 
scripts will need work.  Even if you stay on top of it and keep 
submitting patches, someone will have to keep checking for them and 
applying them.

I'm not interested in doing that work, and other committers apparently 
aren't interested enough to even comment on what an appropriate place 
in CVS might be for these contributions. So I took them out for now.

That's not to say they're gone forever.  I can see a couple of possible

solutions, and that's why I'm doing this thread on tomcat-dev as 
opposed to just replying to you personally.

One approach is what I'm doing now: contributed stuff is owned by 
authors (like you) who post it wherever they want (hp.com, personal web

sites, whatever), and we link to it from our FAQ and/or wiki pages.
This approach solves the long-term maintenance concerns.
If this was a one-time effort, I would have done it and we'd be all set

by now.  But it's not, and I just don't have the bandwidth to work it 
;( Another approach is for someone else with commit privileges to say 
they're interested and do what they think is appropriate.  That can 
happen at any time, I wouldn't stand in their way obviously, as I'm not

principally objecting to these contributions.  I just don't have the 
bandwidth to deal with them at this point.

So this issue is not dead.  It's just not going to be in 5.0.30/5.5.4.
We might also want to raise it on tomcat-user to see if people have 
other creative approaches to solving this.



Are you really going to take the contrib directory out?  I was just 
about to make a contribution to you via PayPal as a thank you...
  

Thank you ;)
Yoav Shapira http://www.yoavshapira.com

This e-mail, including any attachments, is a confidential business
communication, and may contain information that is confidential,
proprietary and/or privileged.  This e-mail is intended only for the
individual(s) to whom it is addressed, and may not be saved, copied,
printed, disclosed or used by anyone else.  If you are not the(an)
intended recipient, please immediately delete this e-mail from your
computer system and notify the sender.  Thank you.



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


Re: contrib directory

2004-11-01 Thread Costin Manolache
Shapira, Yoav wrote:
Hi,
Another option for now is to setup a SourceForge project for this.  I'd
be glad to link to it from our docs/FAQs/wiki pages.  You (two) could be
its committers, and we could work together to get additional
contributors setup there.
There has to be a critical mass...
It seems there is some mass - if the same idea is mentioned at the same 
time by more people :-)

I think it would be good to have few tomcat committers as project admins 
- at least 3 (the magic number). I volunteer, it seems Yoav is also 
interested - anyone else ?

Costin

Yoav Shapira http://www.yoavshapira.com
 


-Original Message-
From: Garrison, Meg [mailto:[EMAIL PROTECTED]
Sent: Monday, November 01, 2004 9:18 AM
To: Tomcat Developers List
Subject: RE: contrib directory

why not put it in the NetBeans repository where you're already setup?
I'm only setup to commit to the /core module, which is not where the
Tomcat files are found.
Actually, we started out in the direction of contributing our Tomcat
changes to NetBeans, see
http://www.netbeans.org/issues/show_bug.cgi?id=49420
And we contributed patches to NetBeans to start Tomcat on OpenVMS and a
catalina.com to be placed in the tomcat bin directory that NetBeans
ships.  The NetBeans folks told us they'd prefer we make the launcher
contributions to Tomcat, since that's where they belong...which is why
I
opened
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=31499
against Tomcat.
Meg
-Original Message-
From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
Sent: Monday, November 01, 2004 8:53 AM
To: Tomcat Developers List
Subject: RE: contrib directory
Hi,
That actually gave me an idea: why not put it in the NetBeans
repository
where you're already setup?
In Apache, there needs to be a long-demonstrated background of
contributions before getting commit privileges.  We have different
processes in this area than NetBeans and some of the other open-source
collaborations.
Yoav Shapira http://www.yoavshapira.com

-Original Message-
From: Garrison, Meg [mailto:[EMAIL PROTECTED]
Sent: Monday, November 01, 2004 7:03 AM
To: Tomcat Developers List
Subject: RE: contrib directory
Hi Leslie,
I'm also willing to maintain the HP OpenVMS scripts.  Rather than
create
a whole new project (tomcat-contrib) maybe it would be possible for
the
Tomcat folks to grant us commit access to a single module/folder in
their CVS library (a contrib folder of some sort).  Then they wouldn't
have to worry about committing our changes, etc..  If we misbehave and
don't follow their rules, then they have the option to boot us out..
That's how the NetBeans project does it.  For example, I have commit
powers in the core module, which is where the OpenVMS launcher lives,
but no other.  Our needs for NetBeans (as yours, I'm sure) require
that
the default Tomcat distribution contain our launcher somewhere...it
doesn't have to be in /bin.
Any other ideas?
Meg
-Original Message-
From: Leslie Kishalmi [mailto:[EMAIL PROTECTED]
Sent: Friday, October 29, 2004 5:29 PM
To: Shapira, Yoav
Cc: Tomcat Developers List; Garrison, Meg
Subject: Re: contrib directory
Dear all,
I'm willing to spend some of my limited free time to collect,
organize
and maintain these contributed code.
However, it is very unlikely that I would be ever a committer on this
project with my OS/2 launchers.
So, as Yoav said, we could find an other committer. Or we could create
an other project something like tomcat-contrib where we maintain our
code.
Best regards,
Leslie Kishalmi
Shapira, Yoav wrote:

Hi,
Yeah, it's gone for now.  The reason is that the maintenance aspect
is
too hard for the long term.  While I don't doubt the quality of you
(or
anyone else's) work, nothing is perfect.  It is inevitable that the
scripts will need work.  Even if you stay on top of it and keep
submitting patches, someone will have to keep checking for them and
applying them.
I'm not interested in doing that work, and other committers
apparently
aren't interested enough to even comment on what an appropriate place
in CVS might be for these contributions. So I took them out for now..
That's not to say they're gone forever.  I can see a couple of
possible
solutions, and that's why I'm doing this thread on tomcat-dev as
opposed to just replying to you personally.
One approach is what I'm doing now: contributed stuff is owned by
authors (like you) who post it wherever they want (hp.com, personal
web
sites, whatever), and we link to it from our FAQ and/or wiki pages.
This approach solves the long-term maintenance concerns.
If this was a one-time effort, I would have done it and we'd be all
set
by now.  But it's not, and I just don't have the bandwidth to work it
;( Another approach is for someone else with commit privileges to say
they're interested and do what they think is appropriate.  That can
happen at any time, I wouldn't stand in their way obviously, as I'm
not
principally objecting to these contributions.  I just don't have

Re: [VOTE] 5.5.3 Stability Rating

2004-10-13 Thread Costin Manolache
Remy Maucherat wrote:
- Allowing pluggability for commons-modeler
Can you elaborate a bit more on this ? The basic functionality of 
modeler is to take an object and a descriptor and return an mbean.
This can be made pluggable - a simple interface with a single method is
probably enough to hide most of modeler's logic. But all the descriptors 
need to be converted.

But what do you want to use instead and how ? Move the mbean descriptors 
to conf/ so it can be replaced with another format ( since this is 
specific to modeler ) ?

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


Re: JK Todo List

2004-10-12 Thread Costin Manolache
Henri Gomez wrote:
True, in ASF land as in other community, it's the users and
developpers base which make a solution/product successfull or
forgotten.
BTW, jk 1.2.x is allready very stable and should stay like this for now :
- JK 1.2.x is now on bug-fix only mode.
- AJP_PROXY/MOD_PROXY for Apache 2.1.x (built-in)
Should we start a new AJP/JK/whatever connector is another story which
has been debated this summer when we speak about mod_ajp.
We should first be very prudent since users may be puzzled by :
jk 1.2.x, jk 2.x, mod_webapp, ajp_proxy/mod_proxy, anewstufffwecouldimagine.
Since ajp_proxy/mod_proxy devel goes outside jakarta land, httpd-dev
and will be present only in Apache 2.1.x, may be there is a need for a
new piece of code for IIS/DOMINO/Apache1.3 or even Apache 2.x but we
should list the requested features missing in jk 1.2.x
For IIS/Domino - I think having it maintained and developed by apache is 
  a waste. In both mod_jk and mod_jk2 we pay a significant price for 
trying to be multi-server, and it seems clear this is a feature that 
only few people want.

If an external project wants to create an IIS connector based on mod_ajp 
or jk - that's great. But they should do it taking full advantage of 
whatever IIS provides, including consistent config, etc.


I suggest take a look about what was detailed in mod_ajp thread (July
2004) and see if a new consensus could appears.
On Mon, 11 Oct 2004 16:21:44 -0700, Bill Barker [EMAIL PROTECTED] wrote:
- Original Message -
From: Dave Oxley [EMAIL PROTECTED]
To: Tomcat Developers List [EMAIL PROTECTED]
Sent: Monday, October 11, 2004 3:35 PM
Subject: Re: JK Todo List

So is JK2 dead because of proxy_ajp? Why doesn't JK2 just replace JK?
JK2 is dead because (like mod_webapp before it :), it failed to attract a
community interested in maintaining it.  You might as well ask 'why doesn't
mod_webapp just replace JK?'
There are also technical reasons I think. Like the attempt to object 
oriented C but without using one of the existing solutions. And not 
droping featurea from mod_jk. But you're right - lack of community 
interest was the main problem.

Costin


Dave.

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

This message is intended only for the use of the person(s) listed above as the 
intended recipient(s), and may contain information that is PRIVILEGED and 
CONFIDENTIAL.  If you are not an intended recipient, you may not read, copy, or 
distribute this message or any attachment. If you received this communication in 
error, please notify us immediately by e-mail and then delete all copies of this 
message and any attachments.
In addition you should be aware that ordinary (unencrypted) e-mail sent through the 
Internet is not secure. Do not send confidential or sensitive information, such as 
social security numbers, account numbers, personal identification numbers and 
passwords, to us via ordinary (unencrypted) e-mail.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


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


Re: JK Todo List

2004-10-11 Thread Costin Manolache
Henri Gomez wrote:
Well JK using APR will be a good solution for every webservers but Apache 1.3.x.
Apache 2.x came with APR,  IIS, Domino and others should have no
problems to use an external APR library (.so, .dll).
So the remaining question will be shoud we drop Apache 1.3.x support
in future JK 1.2.x or should we start a 'new' APR JK 1.2.x based
implementation ?

Why use APR in mod_jk ?
Support for Apache1.3 is IMO more important than support for IIS. And so 
far, mod_jk seems to work without any apr - and it is in maintainance 
mode, so no major changes should be made.

Costin

On Fri, 08 Oct 2004 16:53:40 -0400, Kurt Miller [EMAIL PROTECTED] wrote:
From: Mladen Turk [EMAIL PROTECTED]
Remy Maucherat wrote:
Over all, I don't, personally, think that it's worth trying to build
on the existing Jk code base.  However, if you have an itch
Well, we deceased JK2, for Apache2.1 we have proxy_ajp.
Until Apache2.1 becomes the only server around the net,
I'll stick with JK for all those not running my preferred
web server :).
Right. However, I think JK 1.2.x needs some level of stability. So APR,
large architectural changes, etc seem bad ideas. Of your list, I think
documentation (yah !) and the Unix sockets backport would be good (if
not too complex), but that's about it. Modifications to the Java side is
something independent.
I think it would rise the stability, but introduce new problems like
building APR, etc.. so you are probably right. We'll see.
I'm not very happy with the integrated APR build in JK2 for Apache
1.3. I did much of the work there and if I had to do it again, I'd
prefer APR to be a build/runtime depend, built separately by the
user first and loaded with LoadFile directive.
With respect to JK, I'd rather not see it get APR'ized. Mostly
so that Apache 1.3 support is kept simple and straightforward.

For the long term, if you would want better support for the other
servers, you can start a 100% APR replacement for JK 1.2 (I think it was
a bit like your mod_ajp) if you want to.
I'm surely do. The IIS6 support is something to chase :).
MT.


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


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


Re: JK Todo List

2004-10-08 Thread Costin Manolache
Remy Maucherat wrote:
- Backport JNI from JK2 with lots improvements.

I still don't see benefits in JNI as a transport for JK. Only trouble 
(no matter how I look at it, it seems like it would actually make the 
whole system much less robust) and complexity.
Did I miss something ?
I have to agree - for Apache ( even 2  ) the complexity of multiprocess 
is too big and it's not worth it in almost all cases.

But having a jni library to access OS-specific features is not a bad 
idea. For example registry, change UID ( I know c-daemon could do the 
same), unix sockets, etc.

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


Re: JMX Remote connection

2004-10-07 Thread Costin Manolache
Jess Holle wrote:
In general the same-user, same-machine stuff works great (including with 
Tomcat 5) if you specify

   -Dcom.sun.management.jmxremote
as part of the command line.
Again - remember not everyone is using Sun JDK1.5 implementation.
My understanding is Macs don't have 1.5 yet, neither most other platforms.

This is without any special web app or such.
What I really want to see is a nice bit of code that allows you to fire 
up a JMX RMI connector that:

   * Finds the first free port in a range (e.g. assuming you have a
 number of slave processes, this does not apply to Tomcat as it
 does not have such logic for it AJP port, etc).
   * Support user/password and SSL
   * Does not rely on implementation internals, i.e. requiring Java 5
 is fine, but having hooks into sun.* or MX4J or whatever classes
 is no good
That's not hard to add. You actually need the first free port in the 
range for rmiregistry - or you can use existing rmiregistry if one is 
found.

You need different rmi names - that's easier.
Adding user/pass/ssl is not hard - if someone has the itch it shouldn't 
be a problem. javax.man.remote has all that's needed AFAIK. IF you look 
at jmxremote webapp that I checked in - there is no mx4j or sun code, 
just plain javax.

Costin


--
Jess Holle
Remy Maucherat wrote:
Dominik Drzewiecki wrote:

I couldn't get the attach to process thing to work, though (= 
without a port). Is it supposed to be doable ?


Neither have I (I am talking of tomcat running as Windows service). 
It seems that both processes : tomcat JVM and jconsole JVM have to be 
owned by the same user. Maybe that is the case with you? Hovewer, 
starting tomcat from my system account solves the problem.
For more info see:
http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

cut
Both jconsole and the application must by executed by the same user 
name. The management and monitoring system uses the operating 
system's file permissions.
/cut

I'm running both with the same usename on Windows, and it doesn't 
work. Since it's Windows and I like to be able to do stuff, I of 
course run with root privileges. Seems to me it would work on Unix, 
but is currently broken on Windows (I use XP pro SP 2), or something. 
Over a TCP port, it works good.

I couldn't find a comprehensive guide on all these nice system 
properties, while there's tons of docs on the new command line commands.

If I use the service, which runs with the SYSTEM account, it of course 
doesn't work any better ;)

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



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


Re: [5.5] Todo list

2004-10-07 Thread Costin Manolache
Remy Maucherat wrote:
Remy Maucherat wrote:
- Decent default java.util.logging configuration

I don't see any sensible configuration given what the standard handlers 
are (limited rotation options, little possibility of avoiding hardcoding 
logfiles paths, etc). Also, the reload operation is not exposed to JMX 
(other operations are exposed, however).

So I'll add a default configuration file from the JRE, where we'll add 
some example catagory names to help users, but that's unfortunately all 
that can be done by default.

Rémy
And some people are using log4j :-)
I just can't live with the 2-line per log and the formated date, and I 
found no way to change this  ( except writting my own formatter ).


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


Re: loader

2004-10-06 Thread Costin Manolache
Mladen Turk wrote:
Costin, can you elabborate the purpose of the patch?
Perhaps I've missed few discussions.
There are few goals:
- allow tomcat components ( connector, valves, etc ) to be 
added/removed/upgraded dynamically, at runtime - without requiring a 
full restart.
-  cleanup the startup code - the split startup package, lots of 
introspection and dependencies ( commons-logging, jmx needed in CLASSPATH )
- maybe improve the class loading - for example WebappClassLoader use of 
the jar index, the code is a bit complex, etc
- make it easier to integrate tomcat in apps like jboss or eclipse - 
which both use similar class loaders and module mechanisms ( jbossmx and 
osgi ).

One extra benefit may be on allowing more flexibility in the 
common/shared/webapp hierarchy - if WebappClassLoader extends the 
loader, it will be easier to have webapps using different versions of 
shared libraries ( right now you need to place shared libs in shared or 
common, and you can't have more than a version ).

I've been trying to do this for a very long time - there is some code in 
3.3 ( interceptors can be loaded/unloaded from trusted webapps ), but 
using an m-let-like classloader is a better solution than what was there.

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


cvs commit: jakarta-tomcat-catalina/webapps/jmxremote - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:04

  jakarta-tomcat-catalina/webapps/jmxremote - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:09

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:16

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:29

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:35

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:39

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat - New 
directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:45

  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets - 
New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote - New directory

2004-10-06 Thread costin
costin  2004/10/06 08:14:51

  
jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote
 - New directory

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote JmxRemoteServlet.java

2004-10-06 Thread costin
costin  2004/10/06 08:17:24

  Added:   webapps/jmxremote/WEB-INF web.xml
   webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote
JmxRemoteServlet.java
  Log:
  Add the jmx remote class.
  mx4j.jar and mx4j-remote ( or JDK1.5 ) are needed to compile.
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/web.xml
  
  Index: web.xml
  ===
  ?xml version=1.0 encoding=ISO-8859-1?
  
  !DOCTYPE web-app
  PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN
  http://java.sun.com/dtd/web-app_2_3.dtd;
  
  web-app
display-nameJMX Remote Connector Loader/display-name
description
Will start Jmx RMI connector if JMX is available.
/description
  
servlet
  servlet-nameJmxRemote/servlet-name
  
servlet-classorg.apache.tomcat.servlets.jmxremote.JmxRemoteServlet/servlet-class
  init-param
param-namedebug/param-name
param-value0/param-value
  /init-param
  !-- 
  --
  load-on-startup1/load-on-startup
/servlet
  
  /web-app
  
  
  
  1.1  
jakarta-tomcat-catalina/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote/JmxRemoteServlet.java
  
  Index: JmxRemoteServlet.java
  ===
  /*

   * Created on Jul 14, 2004

   *

   * TODO To change the template for this generated file go to

   * Window - Preferences - Java - Code Style - Code Templates

   */

  package org.apache.tomcat.servlets.jmxremote;

  

  import java.io.IOException;

  import java.rmi.registry.LocateRegistry;

  import java.rmi.registry.Registry;

  

  import javax.management.MBeanServer;

  import javax.management.MBeanServerFactory;

  import javax.management.remote.JMXConnectorServer;

  import javax.management.remote.JMXConnectorServerFactory;

  import javax.management.remote.JMXServiceURL;

  import javax.servlet.ServletConfig;

  import javax.servlet.ServletException;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  

  // Using o.a.tomcat.servlets because o.a.catalina won't be loaded unless trusted app 

  

  /**

   * Experimental servlet allowing connectors to be deployed and managed using the 

   * webapp infrastructure.

   * 

   * Connectors can be packaged in a WAR file, deployed and managed using the 

   * normal tools. Configuration is done using web.xml init-params - while this is 

   * not as simple as connector tags in server.xml, it may be easier to support

   * in tools and explain to webapp developers.

   * 

   * Since webapp class loader is used - start/stop as well as reloading can be 

   * controlled from the /manager.

   * 

   * Issues:

   *  - may polute the webapps namespace - solution would be to reserve a prefix

   * or use some invalid/special name.

   *

   * @author Costin Manolache

   */

  public class JmxRemoteServlet extends HttpServlet {

  JMXConnectorServer cntorServer = null; 

  

  public void init(ServletConfig conf) throws ServletException {

  // otherwise log doesn't work

  super.init(conf);

  

  MBeanServer mBeanServer = null;

  

  Registry reg=null;

  

  // TODO: use config to get the registry port, url, pass, user

  

  

  try {

  if( reg==null )

  reg=LocateRegistry.createRegistry(1099);

  } catch( Throwable t ) {

  log(Can't start registry - it may be already started:  + t);

  }

  

  try {

  mBeanServer = null;

  if (MBeanServerFactory.findMBeanServer(null).size()  0) {

  mBeanServer =

  (MBeanServer) MBeanServerFactory.findMBeanServer(null).get(0);

  } else {

  mBeanServer = MBeanServerFactory.createMBeanServer();

  }

  } catch( Throwable t ) {

  log(Can't get the mbean server  + t);

  return;

  }

  

  try {

  JMXServiceURL address = new 
JMXServiceURL(service:jmx:rmi://rmiHost/jndi/rmi://localhost:1099/jndiPath;);

  cntorServer = 

  JMXConnectorServerFactory.newJMXConnectorServer(address, null, 
mBeanServer);

  cntorServer.start();

  } catch (Throwable e) {

  log(Can't register jmx connector , e);

  }

  }

  

  /** Stop the connector

   * 

   */

  public void destroy() {

  try {

  if( cntorServer != null ) cntorServer.stop();

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  

  public void service(HttpServletRequest req

cvs commit: jakarta-tomcat-catalina/webapps/jmxremote build.xml

2004-10-06 Thread costin
costin  2004/10/06 08:24:57

  Added:   webapps/jmxremote build.xml
  Log:
  build file
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-catalina/webapps/jmxremote/build.xml
  
  Index: build.xml
  ===
  project name=manager default=build-main basedir=.
  
  
!-- = Initialize Property Values === --
  
!-- See build.properties.sample in the top level directory for all --
!-- property values you must customize for successful building!!!--
property file=${user.home}/build.properties/
property file=build.properties/
property file=../build.properties/
property file=../../build.properties/
property file=../../../jakarta-tomcat-5/build.properties/
property file=../../../jakarta-tomcat-5/build.properties.default/
  
property name=build.compiler  value=modern/
property name=webapps.build   value=../build/
property name=webapps.distvalue=../dist/
property name=webapp.name value=jmxremote/
  
!-- Dependent JARs and files --
property name=servlet-api.jar 
value=${api.home}/jsr154/dist/lib/servlet-api.jar/
property name=jsp-api.jar value=${api.home}/jsr152/dist/lib/jsp-api.jar/
  
path id=build.classpath
  pathelement location=${catalina.deploy}/classes/
  pathelement location=${commons-fileupload.jar}/
  pathelement location=${commons-modeler.jar}/
  pathelement location=${jmx.jar}/
  pathelement location=${jmx-remote.jar}/
  pathelement location=${servlet-api.jar}/
  pathelement location=${jsp-api.jar}/
/path
  
  
!-- === BUILD: Create Directories == --
target name=build-prepare
  mkdir dir=${webapps.build}/
  mkdir dir=${webapps.build}/${webapp.name}/
  mkdir dir=${webapps.build}/${webapp.name}/images/
  mkdir dir=${webapps.build}/${webapp.name}/WEB-INF/
  mkdir dir=${webapps.build}/${webapp.name}/WEB-INF/classes/
/target
  
  
!--  BUILD: Copy Static Files == --
target name=build-static depends=build-prepare
  copy todir=${webapps.build}/${webapp.name}
fileset dir=.
  exclude name=build.*/
/fileset
  /copy
/target
  
  
!-- = BUILD: Compile Server Components = --
target name=build-main depends=build-static
  
  javac   srcdir=WEB-INF/src 
   destdir=${webapps.build}/${webapp.name}/WEB-INF/classes
   debug=${compile.debug} deprecation=${compile.deprecation}
   optimize=${compile.optimize}
   excludes=**/CVS/**
classpath refid=build.classpath /
  /javac
  
/target
  
  
!--  BUILD: Rebuild Everything = --
target name=all depends=build-clean,build-main
 description=Clean and build manager webapp/
  
  
!-- === BUILD: Clean Directory = --
target name=build-clean
  delete dir=${webapps.build}/${webapp.name}/
/target
  
  
!-- === DIST: Create Directories === --
target name=dist-prepare
  mkdir dir=${webapps.dist}/
/target
  
  
!-- === DIST: Create Distribution Files  --
target name=dist depends=build-main,dist-prepare
 description=Create manager webapp binary distribution
jar   jarfile=${webapps.dist}/${webapp.name}.war
   basedir=${webapps.build}/${webapp.name} includes=**/
/target
  
  
!-- === DIST: Clean Directory == --
target name=dist-clean
  deltree dir=${dist.dir}/${webapp.name}/
/target
  
  
!-- == Convenient Synonyms = --
target name=clean depends=build-clean,dist-clean
 description=Clean build and dist directories/
  
  
  /project
  
  
  

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



cvs commit: jakarta-tomcat-catalina/webapps/jmxremote README

2004-10-06 Thread costin
costin  2004/10/06 08:30:16

  Added:   webapps/jmxremote README
  Log:
  Add the readme
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-catalina/webapps/jmxremote/README
  
  Index: README
  ===
  Simple webapp that loads the Jmx remote connector. 
  
  You need to add mx4j-remote.jar to your common loader or use JDK1.5. Any other JMX 
implementation
  that supports javax.remote should work as well. 
  
  The directory structure is a bit different from manager and the other webapps in 
catalina. I'm
  using eclipse, set up to use separate output dirs and autocompile. The output dir is 
set to WEB-INF/classes,
  and I have a symlink to the jmxremote dir in the sources - so basically there is no 
need to run ant/manually compile, 
  just save the file and reload the app. 
  
  MISSING: user/password, SSL, custom RMI server address - can be easily added using 
servlet params ( and should be 
  added if this ever gets included in the distro )
  
  
  

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



Re: loader

2004-10-06 Thread Costin Manolache
Mladen Turk wrote:
Costin Manolache wrote:
Mladen Turk wrote:
Costin, can you elabborate the purpose of the patch?
Perhaps I've missed few discussions.
There are few goals:
- allow tomcat components ( connector, valves, etc ) to be 
added/removed/upgraded dynamically, at runtime - without requiring a 
full restart.
-  cleanup the startup code - the split startup package, lots of 
introspection and dependencies ( commons-logging, jmx needed in 
CLASSPATH )
- maybe improve the class loading - for example WebappClassLoader use 
of the jar index, the code is a bit complex, etc
- make it easier to integrate tomcat in apps like jboss or eclipse - 
which both use similar class loaders and module mechanisms ( jbossmx 
and osgi ).

One extra benefit may be on allowing more flexibility in the 
common/shared/webapp hierarchy - if WebappClassLoader extends the 
loader, it will be easier to have webapps using different versions of 
shared libraries ( right now you need to place shared libs in shared 
or common, and you can't have more than a version ).

I've been trying to do this for a very long time - there is some code 
in 3.3 ( interceptors can be loaded/unloaded from trusted webapps ), 
but using an m-let-like classloader is a better solution than what was 
there.

What about commons-deamon?
What about it :-) ?
Daemon is a different level - it's about launching a resident process 
(or service in windows ). No connection with how the process is loading
its classes.


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


cvs commit: jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader Loader.java Module.java

2004-10-06 Thread costin
costin  2004/10/06 08:41:44

  Modified:util build.xml
   util/loader/org/apache/tomcat/util/loader Loader.java
Module.java
  Log:
  A bit of cleanup. The lib dir and the checked in binaries are long gone.
  Avoid creation of loader dir if loader is not used/compiled.
  
  Revision  ChangesPath
  1.30  +3 -3  jakarta-tomcat-connectors/util/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/util/build.xml,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- build.xml 6 Oct 2004 05:16:06 -   1.29
  +++ build.xml 6 Oct 2004 15:41:44 -   1.30
  @@ -18,8 +18,8 @@
   property name=puretls.lib location=${puretls.home}/
   property name=puretls.jar location=${puretls.lib}/puretls.jar/
   
  -property name=commons-logging.jar location=../lib/commons-logging.jar /
  -property name=jmx.jar location=../lib/mx4j.jar /
  +property name=commons-logging.jar 
location=${base.path}/commons-logging-1.0.4/commons-logging.jar /
  +property name=jmx.jar location=${base.path}/mx4j-2.0.1/lib/mx4j.jar /
   property name=tomcat-util.lib value=${tomcat-util.build}/lib /
   property name=tomcat-util.jar value=${tomcat-util.lib}/tomcat-util.jar /
   property name=tomcat-loader.jar value=${tomcat-util.lib}/tomcat-loader.jar 
/
  @@ -48,7 +48,6 @@
   target name=build-prepare depends=detect
   mkdir dir=${tomcat-util.build}/
   mkdir dir=${tomcat-util.build}/classes/
  -mkdir dir=${tomcat-util.build}/loader/
mkdir dir=${tomcat-util.lib}/
   /target
   
  @@ -105,6 +104,7 @@
   /target
   
   target name=tomcat-loader.jar depends=build-prepare
  +mkdir dir=${tomcat-util.build}/loader/
   javac srcdir=loader
  destdir=${tomcat-util.build}/loader
  deprecation=${compile.deprecation}
  
  
  
  1.2   +7 -0  
jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Loader.java
  
  Index: Loader.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Loader.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Loader.java   6 Oct 2004 05:00:04 -   1.1
  +++ Loader.java   6 Oct 2004 15:41:44 -   1.2
  @@ -489,6 +489,13 @@
   return result;
   }
   
  +void notifyModuleStart(Module module) {
  +if(listener!=null) listener.moduleStart(module);
  +}
  +
  +void notifyModuleStop(Module module) {
  +listener.moduleStop(module);
  +}
   
   /** Add a module listener. 
* 
  
  
  
  1.2   +2 -2  
jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Module.java
  
  Index: Module.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/loader/org/apache/tomcat/util/loader/Module.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Module.java   6 Oct 2004 05:00:04 -   1.1
  +++ Module.java   6 Oct 2004 15:41:44 -   1.2
  @@ -182,7 +182,7 @@
   
   classLoader.start();
   
  -getRepository().getLoader().listener.moduleStart(this);
  +getRepository().getLoader().notifyModuleStart(this);
   
   } catch (Throwable t) {
   log( LifecycleException , t );
  @@ -204,7 +204,7 @@
   //if (DEBUG) 
   log(stop(), null);
   
  -getRepository().getLoader().listener.moduleStop(this);
  +getRepository().getLoader().notifyModuleStop(this);
   
   started = false;
   
  
  
  

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



Re: loader

2004-10-06 Thread Costin Manolache
Mladen Turk wrote:
Costin Manolache wrote:
Mladen Turk wrote:
What about commons-deamon?
What about it :-) ?
Daemon is a different level - it's about launching a resident process 
(or service in windows ). No connection with how the process is loading
its classes.


Sure, but the wheel was invented long time ago :).
How about making things usable?
Which things to make usable ? Daemon ? It's not my itch to start 
services on windows:-)

Yes, the wheel was invented long ago - and we are still using the 
simplistic hierarchical class loader + delegation.

Do we really need all those different loaders?
That can be said about anything :-)
I'm making the compile optional - so if you don't explicitely ask for it 
it'll not get compiled. When it's completely ready - I hope it will 
replace Bootstrap/StandardClassLoader - so we'll still have 1 loader for 
standalone.

If embeded - as I said, the intent is to not use the loader but the 
embedor's loader - however ability to split tomcat in smaller components 
and manage each separately should remain ( supported by the embedding 
app loader ). That's why the loader is mirroring the fundamental 
behavior of mlet/jboss/eclipse/osgi - i.e. repository of classloaders 
delegating to each other.

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


Re: loader

2004-10-06 Thread Costin Manolache
Remy Maucherat wrote:
I didn't have time to look at the code yet, though.
Wait a week or 2 - the loader part is fine, but the catalina side is 
still a bit messy and I need to find a good way to integrate with the 
build ( to make it completely optional/isolated - I don't want to affect 
the 5.5  schedule by breaking something :-)

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


Re: JMX Remote connection

2004-10-06 Thread Costin Manolache
Remy Maucherat wrote:
Dominik Drzewiecki wrote:

Why don't we dump the JkMX and just settle for the facilities provided 
by Java 5 configurable via standard system properties: 
-Dcom.sun.management.jmxremote alone for local JVM monioring

or
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8004
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
for remote machine monitoring.
Because they don't work with JDK1.4, and any people (including me) can't 
switch to Java5 since it breaks too much :-)

The option you mention are in fact the same thing with the webapp I'm 
suggesting - they have the effect of loading the standard 
javax.management.remote connector. The difference is that jx.m.r is 
using the standard API and will work with any JMX implementation, while
com.sun is specific to sun's implementation of jmx.


I checked both myself with jconsole shipped with Java 5. It works like 
a charm (apart from increased CPU Load on the machine the jconsole runs).
MC4J 1.2 B5 has no problems with attaching to remote JVM either, 
hovewer it has some issues with mbeans provided by JVM, MC4J folks are 
aware of.

The bottomline is: consider dumping o.a.jk.c.JkMX (I know, I know 
there is number of users wishing to run tomcat on JVM 1.5)
 

Your post motivated me for trying jconsole, and I have to say it's 
really good.
Yes, jconsole is the reason I wrote the app too. Plus the fact that 
mx4j2.0 no longer works with jkmx ( they dumped the connector beans from
distribution since they now support the standard jx.m.r )

As others have said, the problem with JkJMX is that it's annoying to 
keep it up to date. And when we had it up to date, the JMX client was 
then rarely up to date. So I'll let you guys decide what do do, but it's 
sort of obvious the need for that kind of stuff is a lot smaller than 
what it used to be for Tomcat 5.5.

Note: the main reason why I removed jk2.properties is because is has a 
very confusing name (again referring to mod_jk2); if it's really needed, 
then it should be renamed, or an alternate name should be allowed.
No, removing jk2.properties - and removing JkMX - is a good thing.
I'll check in the webapp code, it's easier to talk about code - if 
people don't like it, feel free to -1 :-)

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


cvs commit: jakarta-tomcat-connectors/util/loader - New directory

2004-10-05 Thread costin
costin  2004/10/05 21:56:33

  jakarta-tomcat-connectors/util/loader - New directory

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



cvs commit: jakarta-tomcat-connectors/util/loader/org - New directory

2004-10-05 Thread costin
costin  2004/10/05 21:56:39

  jakarta-tomcat-connectors/util/loader/org - New directory

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



  1   2   3   4   5   6   7   8   9   10   >