DO NOT REPLY [Bug 4829] - Automatic deployment of war files does not work properly
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4829. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4829 Automatic deployment of war files does not work properly [EMAIL PROTECTED] changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|WORKSFORME | --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 00:38 --- Yeah, it does work ONLY if the webapp is in extracted form under webapp/lexis... BUT the examples webapp is now NOT distributed as a war-file. It was so distributed in earlier Versions. Tomcat 3.2.1 had some war-files: admin, examples, ROOT and test. With Catalina these webapps aren't distibuted anymore as war-files. May this be because of this problem, or should we developers avoid using war- files to distribute our applications/updates? Please take a closer look to the following: == WHEN I DO NOT DEFINE A CONTEXT FOR lexis, BUT A DefaultContext, Host name=localhost debug=0 appBase=webapps unpackWARs=true Valve className=org.apache.catalina.authenticator.SingleSignOn debug=0/ Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=localhost_access_log. suffix=.txt pattern=common/ Logger className=org.apache.catalina.logger.SystemOutLogger/ DefaultContext reloadable=true Manager className=org.apache.catalina.session.PersistentManager debug=4 saveOnRestart=false maxActiveSessions=-1 minIdleSwap=-1 maxIdleSwap=-1 maxIdleBackup=-1 Store className=org.apache.catalina.session.FileStore/ /Manager /DefaultContext . THE WAR FILE webapps/lexis.war WILL BE EXPANDED AND DEPLOYED. BUT THIS DEFAULT CONTEXT WILL JUST BE IGNORED (saveOnRestart=false). I AM ALSO NOT ABLE TO DEFINE APPLICATION PARAMETERS: == Starting service Tomcat-Standalone Apache Tomcat/4.0.1 StandardHost[localhost]: Installing web application at context path /lexis from URL jar:file:D:\Programme\JBuilder5\tomcat\webapps\lexis.war!/ WebappLoader[/lexis]: Deploying class repositories to work directory D:\Programme\JBuilder5\tomcat\work\localhost\lexis WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/activation.jar to D:\Programme\JBuilder5\tomcat\webapps\lexis\WEB-INF\lib\activation.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/crimson.jar to D:\Programme\JBuilder5\tomcat\webapps\lexis\WEB-INF\lib\crimson.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/jaxp.jar to D:\Programme\JBuilder5 \tomcat\webapps\lexis\WEB-INF\lib\jaxp.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/lexis.jar to D:\Programme\JBuilder5\tomcat\webapps\lexis\WEB-INF\lib\lexis.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/log4j.jar to D:\Programme\JBuilder5\tomcat\webapps\lexis\WEB-INF\lib\log4j.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/mail.jar to D:\Programme\JBuilder5 \tomcat\webapps\lexis\WEB-INF\lib\mail.jar WebappLoader[/lexis]: Deploy JAR /WEB-INF/lib/struts.jar to D:\Programme\JBuilder5\tomcat\webapps\lexis\WEB-INF\lib\struts.jar StandardManager[/lexis]: Seeding random number generator class java.security.SecureRandom StandardManager[/lexis]: Seeding of random number generator has been completed StandardManager[/lexis] IOException while loading persisted sessions: java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializableExce ion: org.apache.log4j.Category java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializableException: org.apache.log4j.Category at java.io.ObjectInputStream.readObject(ObjectInputStream.java:445) at java.io.ObjectInputStream.inputClassFields (ObjectInputStream.java:2263) at java.io.ObjectInputStream.defaultReadObject (ObjectInputStream.java:519) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.inputClassFields (ObjectInputStream.java:2263) at java.io.ObjectInputStream.defaultReadObject (ObjectInputStream.java:519) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at org.apache.catalina.session.StandardSession.readObject
DO NOT REPLY [Bug 4910] New: - taglib bug
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910 taglib bug Summary: taglib bug Product: Tomcat 4 Version: 4.0.1 Final Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: Major Priority: Other Component: Jasper AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I' am trying to upgrade from Tomcat 3.2.3/ Apache 1.3.19 to Tomcat 4.0.1/ Apache 1.3.19 on Linux. All the urls in the jsps of my application are rewritten by a UrlTag. The UrlTag Class takes the url between the tags and rewrites it if necessary. It works with Tomcat 4.0.1 if the url is placed in the jsp file statically. It works not if the url is get by using the get-method of a bean. With Tomcat 3.2.3 it worked fine in both cases. So I think it could by a bug. Here is an example: ### example.jsp ### A href=myLib:url%= myBean.getURL() %/myLib:urltext/A ### output Tomcat 3.2.3 (right) ### A href=http://localhost/target.jsp;text/A ### output Tomcat 4.0.1 (wrong) ### A href=%= myBean.getURL() %text/A ### example.tld ### tag nameurl/name tagclassde.iop.webrun.shared.taglib.UrlTag/tagclass bodycontenttagdependent/bodycontent inforewrite url/info /tag ### UrlTag-Code ### import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.*; import java.io.IOException; public class UrlTag extends BodyTagSupport { public int doAfterBody() throws JspException { BodyContent bodyContent = getBodyContent(); String baseURL = bodyContent.getString(); bodyContent.clearBody(); try { HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); String encodedURL = response.encodeURL(baseURL); this.getPreviousOut().print(encodedURL); } catch(IOException e) { throw new JspTagException(I/O exception + e.getMessage()); } return SKIP_BODY; } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util FastHttpDateFormat.java
remm01/11/16 01:44:55 Added: catalina/src/share/org/apache/catalina/util FastHttpDateFormat.java Log: - Centralize HTTP date formats generation (because date formatting is a very expensive operation), similar to what FastDateFormat does, but a lot more specialized. Revision ChangesPath 1.1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/FastHttpDateFormat.java Index: FastHttpDateFormat.java === /* * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.catalina.util; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.TimeZone; import java.text.SimpleDateFormat; /** * Utility class to generate HTTP dates. * * @author Remy Maucherat */ public final class FastHttpDateFormat { // -- Variables /** * HTTP date format. */ protected static SimpleDateFormat format = new SimpleDateFormat(EEE, dd MMM HH:mm:ss zzz, Locale.US); protected final static TimeZone gmtZone = TimeZone.getTimeZone(GMT); /** * GMT timezone - all HTTP dates are on GMT */ static { format.setTimeZone(gmtZone); } /** * Instant on which the currentDate object was generated. */ protected static long currentDateGenerated = 0L; /** * Current formatted date. */ protected static String currentDate = null; /** * Date cache. */ protected static HashMap dateCache = new HashMap(); // - Public Methods /** * Get the current date in HTTP format. */ public static String getCurrentDate() { long now = System.currentTimeMillis(); if ((now - currentDateGenerated) 1000) { synchronized (format) { if ((now - currentDateGenerated) 1000) {
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java
remm01/11/16 01:46:53 Modified:catalina/src/share/org/apache/catalina/connector/http HttpProcessor.java catalina/src/share/org/apache/catalina/servlets DefaultServlet.java Log: - Use FHDF instead of SimpleDateFormat.format. Revision ChangesPath 1.40 +8 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java Index: HttpProcessor.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- HttpProcessor.java2001/11/09 19:38:43 1.39 +++ HttpProcessor.java2001/11/16 09:46:53 1.40 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.39 2001/11/09 19:38:43 remm Exp $ - * $Revision: 1.39 $ - * $Date: 2001/11/09 19:38:43 $ +/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.40 2001/11/16 09:46:53 remm Exp $ + * $Revision: 1.40 $ + * $Date: 2001/11/16 09:46:53 $ * * * @@ -91,8 +91,9 @@ import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.Logger; -import org.apache.catalina.util.RequestUtil; +import org.apache.catalina.util.FastHttpDateFormat; import org.apache.catalina.util.LifecycleSupport; +import org.apache.catalina.util.RequestUtil; import org.apache.catalina.util.StringManager; import org.apache.catalina.util.StringParser; @@ -106,7 +107,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.39 $ $Date: 2001/11/09 19:38:43 $ + * @version $Revision: 1.40 $ $Date: 2001/11/16 09:46:53 $ */ final class HttpProcessor @@ -1006,8 +1007,8 @@ // Ask our Container to process this request try { -((HttpServletResponse) response).addDateHeader -(Date, System.currentTimeMillis()); +((HttpServletResponse) response).setHeader +(Date, FastHttpDateFormat.getCurrentDate()); if (ok) { connector.getContainer().invoke(request, response); } 1.43 +10 -22 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Index: DefaultServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- DefaultServlet.java 2001/10/15 01:11:59 1.42 +++ DefaultServlet.java 2001/11/16 09:46:53 1.43 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.42 2001/10/15 01:11:59 remm Exp $ - * $Revision: 1.42 $ - * $Date: 2001/10/15 01:11:59 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.43 2001/11/16 09:46:53 remm Exp $ + * $Revision: 1.43 $ + * $Date: 2001/11/16 09:46:53 $ * * * @@ -111,9 +111,10 @@ import org.apache.naming.resources.Resource; import org.apache.naming.resources.ResourceAttributes; import org.apache.catalina.Globals; +import org.apache.catalina.util.FastHttpDateFormat; import org.apache.catalina.util.MD5Encoder; -import org.apache.catalina.util.StringManager; import org.apache.catalina.util.RequestUtil; +import org.apache.catalina.util.StringManager; /** @@ -122,7 +123,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.42 $ $Date: 2001/10/15 01:11:59 $ + * @version $Revision: 1.43 $ $Date: 2001/11/16 09:46:53 $ */ public class DefaultServlet @@ -1128,7 +1129,7 @@ if (debug 0) log(DefaultServlet.serveFile: lastModified=' + (new Timestamp(resourceInfo.date)).toString() + '); -response.setDateHeader(Last-Modified, resourceInfo.date); +response.setHeader(Last-Modified, resourceInfo.httpDate); } @@ -1568,7 +1569,7 @@ sb.append(/tt/td\r\n); sb.append(td align=\right\tt); -sb.append(renderLastModified(childResourceInfo.date)); +sb.append(childResourceInfo.httpDate);
DO NOT REPLY [Bug 4910] - taglib bug
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910 taglib bug [EMAIL PROTECTED] changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 02:01 --- Hey I thing it is a bug in tomcat 3.2.x ! When you declare at tag bodycontenttagdependent/bodycontent the jsp engine don't interpret the body. The Body is text for your tag handler. with bodycontentJSP/bodycontent jasper interpreter the body before your get the content. I hope with the description change your urltag work Peter -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: Ajp14 and Ajp13
I'm in favor of this, since the protocol is only being extended, not really changed. However, I think that one of the extensions that should be implemented early on is a version negotiation so that the newer side can gracefully degrade in the future without having to rely on the user changing configuration settings. Yes, Henri already implemented this in the login phase - however Ajp13 doesn't support this. We should be carefull with the login phase. The distinction between post Ajp14 will be the number of callbacks supported - and login/negotiation is the essential one to diferentiate between Ajp13 and Ajp14+. Yes, but what will happen to a worker using ajp14 trying to connect (and so using md5 login phase) to a good old ajp13 server ? If the user doesn't set the login callback - we will use 'plain' ajp13. What do you mean by user setting callback ? in httpd.conf for examples ? If the user does have a login - it's clear he wants ajp14 ( or later ) and we can detect the number of callbacks supported. The distinction between ajp13, 14, ... will be in the number of callbacks - each version will have a set of callbacks ( sort of API version instead of protocol version ). Regardless of the Ajp version, we should support all previous ones up to 13. This will also minimize the amount of pain for 3.2.x users, who are unlikely to get Ajp14 ported, and also for users of 4.0 - again, support for ajp14 is likely to be available in 4.0.2 or later. They'll still be able to get most fixes, and we'll have less code to maintain. Make sense, but making ajp14 a sort of ajp13++, using the same port and same headers will put users in trouble. I'm in favor of having an ajp13/ajp14 unique Interceptor (java side), which will detect the rigth protocol by looking at msg headers. ajp13 use 0x1234 as header and 'AB' (0x4142) as trailer and I used 0x1235 for both header and trailer for ajp14. Also having separate headers will help people writing network disector for network dumper (ie ethereal). And on native camp, it should be easy since we'll could have an ajp13 callback and another one for ajp14, may be a protocol init callback which could set headers accordingly for future message sent/received. The client side should be able also to detect it speak ajp14 on an ajp13 server and fallback to ajp13 protocol -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4829] - Automatic deployment of war files does not work properly
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4829. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4829 Automatic deployment of war files does not work properly --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 02:08 --- I have test the DefaultContext with nightly 11/12/2001 build and it works with Parameter and Env -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4915] New: - Relocation error while loading mod_jk when starting apache.
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4915. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4915 Relocation error while loading mod_jk when starting apache. Summary: Relocation error while loading mod_jk when starting apache. Product: Tomcat 3 Version: 3.2.3 Final Platform: Sun OS/Version: Solaris Status: NEW Severity: Blocker Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I first start tomcat 3.2.3 with /path/to/tomcat/bin/startup.sh; second, I try to start apache 1.3.22 with /path/to/apache/bin/apachectl start. I then get the following message : Syntax error on line 8 of /path/to/tomcat/conf/mod_jk.conf-auto: Cannot load /path/to/apache/libexec/mod_jk.so into server: ld.so.1: /path/to/apache/bin/httpd: fatal: relocation error: file /path/to/apache/libexec/mod_jk.so: symbol fdatasync: referenced symbol not found /path/to/apache/bin/apachectl start: httpd could not be started My system is Solaris 2.5. I have built apache in a DSO mode with : /configure --prefix=/path/to/apache \ --enable-module=most \ --enable-shared=max I have built mod_jk.so from the source distribution jakarta-tomcat-3.2.3-src in the following way : cd /path/to/Tomcat/source/distribution/src/native/apache1.3 $APACHE_HOME/bin/apxs -o mod_jk.so -DSOLARIS -I../jk -I/path/to/java/include -I/path/to/java/include/solaris -c *.c ../jk/*.c cp mod_jk.so /path/to/apache/libexec/. Finally I have put Include /path/to/tomcat/conf/mod_jk.conf-auto at the end of the If I use Tomcat 3.3 instead of 3.2.3 and that I build mod_jk.so in the following way : cd /path/to/tomcat//native/mod_jk/apache1.3 sh build-solaris.sh and that I put Include /path/to/tomcat/conf/auto/mod_jk.conf t the end of the /path/to/apache/conf/httpd.conf file, I get the following message : Syntax error on line 4 of /path/to/tomcat/conf/auto/mod_jk.conf: Cannot load /path/to/apache/libexec/mod_jk.so into server: ld.so.1: /path/to/apache2/bin/httpd: fatal: relocation error: file /path/to/apache/libexec/mod_jk.so: symbol snprintf: referenced symbol not found /path/to/apache/bin/apachectl start: httpd could not be started note : apache works perfectly alone without tomcat started (and without including mod_jk.conf in httpd.conf). -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4910] - taglib bug
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4910 taglib bug [EMAIL PROTECTED] changed: What|Removed |Added Status|RESOLVED|CLOSED --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 02:48 --- Hi Peter, it works! Thank you. Thomas -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Portable SSL Support
[EMAIL PROTECTED] wrote: On 14 Nov 2001, Eric Rescorla wrote: Well, I suppose that since JDK 1.1.x didn't stop you from putting classes in java. I could do my own version of java.security.cert.X509Certificate. A little gross but perhaps the best plan. The alternative is to blatantly violate the spec in 1.1 and just deliver something else. I would say - don't worry about JDK1.1. Support for JDK1.1 is important for embeded devices ( but even there, GCJ does have X509Certificate - it already supports a large subset of JDK1.2, and that's included ). You have to use request.getAttribute() in the JSPs/servlets. Right, but that doesn't mean that we have to expose the SSLSupport interface. Instead we could break out each individual property we cared about into it's own attribute. To be consistant with 2.3 containers, I'd go with individually named attributes. Fine with me. Anyone object to this? Individual attributes are good, but if possible with lazy evaluation. The getInfo() callback in BaseInterceptor is supposed to do exactly that - allow you to lazy-evaluate expensive request fields, so only servlets that ask for the information will pay for it. In TC3.3: We have the following in Http10Interceptor.java: +++ public Object getAttribute(String name) { if (name.equals(javax.servlet.request.X509Certificate)) { return(certcompat.getX509Certificates(socket)); } return(super.getAttribute(name)); } +++ A note stored via request.setNote(SSLSupport,SSLSupport) somewhere in retrieved by getNote. The code ends to be: +++ public Object getAttribute(String name) { if (name.equals(javax.servlet.request.X509Certificate)) { SSLSupport sslsupport = getNote(SSLSupport); if (sslsupport==null) return(null); return(sslsupport.getX509Certificates(socket)); } return(super.getAttribute(name)); } +++ Ideas? Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4917] New: - Better build.xml for tomcat application developers guide
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4917. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4917 Better build.xml for tomcat application developers guide Summary: Better build.xml for tomcat application developers guide Product: Tomcat 4 Version: 4.0.1 Final Platform: All OS/Version: Other Status: NEW Severity: Enhancement Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I've been training up developers using an example project based on the build.xml in the tomcat developer's guide and the struts sample application. I've found that there are some duplication issues in the sample build.xml which invite errors and increase maintenance. There are a couple of bugs with the stated functionality (e.g. in where properties are loaded from) but the main issue is with the separate definition of compile.classpath . This requires developers to maintain not only the classpath but an identical list of files to be copied into the distribution. The (working) build.xml below is a rearrangement of the example in the documentation to fix these issues, and to make the build work 'out of the box' for more projects. See initialled comments ('BE') in the file for more details. !-- A project describes a set of targets that may be requested when Ant is executed. The default attribute defines the target which is executed if no specific target is requested, and the basedir attribute defines the current working directory from which Ant executes the requested task. This is normally set to the current working directory. -- project name=My Project default=compile basedir=. !-- = Property Definitions === -- !-- Each of the following properties are used in the build script. Values for these properties are set by the first place they are defined, from the following list: * Definitions on the ant command line (ant -Dcatalina.home=xyz compile) * Definitions from a build.properties file in the top level source directory * Definitions from a build.properties file in the developer's home directory * Default definitions in this build.xml file You will note below that property values can be composed based on the contents of previously defined properties. This is a powerful technique that helps you minimize the number of changes required when your development environment is modified. Note that property composition is allowed within build.properties files as well as in the build.xml script. -- !-- BE: added lines below to make the statements above true!! -- property file=build.properties/ property file=${user.home}/build.properties/ !-- File and Directory Names -- !-- These properties generally define file and directory names (or paths) that affect where the build process stores its outputs. app.name Base name of this application, used to construct filenames and directories. Defaults to myapp. app.version Version identifier for this application. build.home The directory into which the prepare and compile targets will generate their output. Defaults to build. catalina.homeThe directory in which you have installed a binary distribution of Tomcat 4. This will be used by the deploy target. deploy.home The name of the directory into which the deployment hierarchy will be created, and into which the build directory will be copied. Defaults to ${catalina.home}/webapps/${app.name}. dist.homeThe name of the base directory in which distribution files are created. Defaults to dist. -- property name=app.name value=myapp/ property name=app.version value=1.0/ property name=build.homevalue=build/ !-- BE: set to default path used by tomcat installer. That way it works out of the box for some -- property name=catalina.home value=C:/Program Files/Apache Tomcat 4.0/ !-- UPDATE THIS! -- property name=deploy.home value=${catalina.home}/webapps/${app.name}/ property name=dist.home value=dist/ !-- Compilation Control Options -- !-- These properties control option settings on the Javac compiler when it is invoked using the javac task. compile.debugShould compilation include the debug option?
DO NOT REPLY [Bug 4918] New: - Jasper barfs on empty tags in start tag-end tag form
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4918. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4918 Jasper barfs on empty tags in start tag-end tag form Summary: Jasper barfs on empty tags in start tag-end tag form Product: Tomcat 4 Version: 4.0.1 Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Jasper AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When custom tag content is supposed to be empty, it should be ok in a JSP document to write: my:custom attr=foo/ OR my:custom attr=foo/my:custom as per the XML spec (http://www.w3.org/TR/REC-xml#sec-starttags) This does not appear to be allowed by Jasper. An example stack trace follows. A Servlet Exception Has Occurred org.apache.jasper.compiler.ParseException: /test/templates/umyukp.jsp(14,28) Body is supposed to be empty for html:img at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:842) at org.apache.jasper.compiler.Parser.parse(Parser.java:1132) at org.apache.jasper.compiler.Parser.parse(Parser.java:1091) at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:880) at org.apache.jasper.compiler.Parser.parse(Parser.java:1132) at org.apache.jasper.compiler.Parser.parse(Parser.java:1091) at org.apache.jasper.compiler.Parser.parse(Parser.java:1087) at org.apache.jasper.compiler.ParserController.parse (ParserController.java:213) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210) at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:543) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary (JspServlet.java:176) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service (JspServlet.java:188) at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:381) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:215) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2366) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:164) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:462) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:163) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process (HttpProcessor.java:1005) at org.apache.catalina.connector.http.HttpProcessor.run (HttpProcessor.java:1098) at java.lang.Thread.run(Unknown Source) -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4919] New: - JSP won't compile when using class attribute (standard HTML4 style sheet attribute)
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919 JSP won't compile when using class attribute (standard HTML4 style sheet attribute) Summary: JSP won't compile when using class attribute (standard HTML4 style sheet attribute) Product: Tomcat 3 Version: 3.3 Final Platform: All OS/Version: All Status: NEW Severity: Blocker Priority: Other Component: Jasper AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have a custom tag that Tomcat (Jasper) won't compile. The problem is one of its attributes called class. I want to include this attribute so that users of the tag can set the style sheet attribute in the same way as for other HTML4 tags. Corresponding to the class attribute, there is a setClass(String) method. There is not a getClass() method as it clashes with the getClass() method of the underlying Object class. I have tried this on Tomcat to 3.3 and it produces the following error message: - org.apache.jasper.compiler.CompileException: /usr3/jakarta-tomcat-3.3/webapps/panportalDev/forms/ieformtest.jsp(41,0) Unable to find setter method for attribute: class at org.apache.jasper.compiler.TagBeginGenerator.generateSetters There is public void setClass(String s) in the Tag but, of course, no property called 'class'. Using class as an attribute is very natural for page designers so I expect there is a workaround. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4919] - JSP won't compile when using class attribute (standard HTML4 style sheet attribute)
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919 JSP won't compile when using class attribute (standard HTML4 style sheet attribute) --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 05:00 --- The source code corresponding to the compile-time exception that is thrown in 3.2.2 is below: private final void generateSetters(ServletWriter writer, String parent) throws JasperException { writer.println(thVarName+.setPageContext(pageContext);); writer.println(thVarName+.setParent(+parent+);); if (attributes.length != 0) for(int i = 0; i attributes.length; i++) { String attrValue = (String) attrs.get(attributes[i].getName()); if (attrValue != null) { String attrName = attributes[i].getName(); Method m = tc.getSetterMethod(attrName); if (m == null) throw new CompileException (start, Constants.getString (jsp.error.unable.to_find_method, new Object[] { attrName })); Class c[] = m.getParameterTypes(); // assert(c.length 0) if (attributes[i].canBeRequestTime()) { if (JspUtil.isExpression(attrValue)) attrValue = JspUtil.getExpr(attrValue); else attrValue = convertString(c[0], attrValue, writer, attrName); } else attrValue = convertString(c[0], attrValue, writer, attrName); writer.println(thVarName+.+m.getName() +(+attrValue+);); } } } It fails on the Method m = tc.getSetterMethod(attrName); The previous line String attrName = attributes[i].getName(); returns null because there is no attribute called class It is, of course, legal to have a public void setClass(String klass) {...} although, of course, not legal to have a public String getClass(); as it can't override the Object getClass() method. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4919] - JSP won't compile when using class attribute (standard HTML4 style sheet attribute)
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919 JSP won't compile when using class attribute (standard HTML4 style sheet attribute) --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 05:07 --- The only workarounds I know of is to either: (1) do not include a class attribute (2) call it something else, klass, say :) -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4922] New: - getRealPath().exists() yields security exception
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922 getRealPath().exists() yields security exception Summary: getRealPath().exists() yields security exception Product: Tomcat 4 Version: 4.0.1 Final Platform: All OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When we run Tomcat any version (i have tried tomcat 3.2.3, 3.3, 4.0.1) with security turned on the following code yeilds exceptions: %=new File(pageContext.getServletContext().getRealPath(/)).exists()% % java.io.File tempDir= (java.io.File)pageContext.getServletContext( ).getAttribute(javax.servlet.context.tempdir); % %=tempDir.exists()% I beleive this happens because when you grant permissions of the form grant { permission java.io.FilePermission ../m/-, read; }; this does not allow you to check if new File(../m).exists() or do new File(../m).list() to do that you need to explicitly do grant { permission java.io.FilePermission ../m/-, read; permission java.io.FilePermission ../m, read; }; The whole issue causes security exceptions when you deploy Cocoon2 samples, Velocity samples. They both have code like File log = new File(..getRealPath(logFile)); File parent = new File( log.getParent() ); if (!parent.exists()) parent.mkdirs(); no surprise this failes. I beleive that it would be quite reasonable to allow checking exists() and doing list() on ..getRealPath(/); and the temporary working dir. I'm duplicating this bug report for 3.3 final and 4.0.1 final -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4923] New: - getRealPath().exists() yields security exception
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4923. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4923 getRealPath().exists() yields security exception Summary: getRealPath().exists() yields security exception Product: Tomcat 3 Version: 3.3 Final Platform: All OS/Version: Other Status: NEW Severity: Minor Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When we run Tomcat any version (i have tried tomcat 3.2.3, 3.3, 4.0.1) with security turned on the following code yeilds exceptions: %=new File(pageContext.getServletContext().getRealPath(/)).exists()% % java.io.File tempDir= (java.io.File)pageContext.getServletContext( ).getAttribute(javax.servlet.context.tempdir); % %=tempDir.exists()% I beleive this happens because when you grant permissions of the form grant { permission java.io.FilePermission ../m/-, read; }; this does not allow you to check if new File(../m).exists() or do new File(../m).list() to do that you need to explicitly do grant { permission java.io.FilePermission ../m/-, read; permission java.io.FilePermission ../m, read; }; The whole issue causes security exceptions when you deploy Cocoon2 samples, Velocity samples. They both have code like File log = new File(..getRealPath(logFile)); File parent = new File( log.getParent() ); if (!parent.exists()) parent.mkdirs(); no surprise this failes. I beleive that it would be quite reasonable to allow checking exists() and doing list() on ..getRealPath(/); and the temporary working dir. This bug (or not bug?) has been reported as #4922 for Tomcat 4.0.1 final -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4922] - getRealPath().exists() yields security exception
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922 getRealPath().exists() yields security exception --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 06:04 --- This bug has been reported as bug #4923 for Tomcat 3.3 final -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4917] - Better build.xml for tomcat application developers guide
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4917. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4917 Better build.xml for tomcat application developers guide --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 06:25 --- Whoops - this line in the compile target: copy todir=${build.home}/classes should of course read: copy todir=${build.home}/WEB-INF/classes -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
FW: Thread pool problem in Tomcat 3.3 in Windows NT 4.0
Just to finish with my message about Ajp13 and highly loaded servers - Henri Gomez ___[_] EMAIL : [EMAIL PROTECTED](. .) PGP KEY : 697ECEDD...oOOo..(_)..oOOo... PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 -Original Message- From: Larry Isaacs [mailto:[EMAIL PROTECTED]] Sent: Friday, November 16, 2001 3:29 PM To: 'Tomcat Users List' Subject: RE: Thread pool problem in Tomcat 3.3 in Windows NT 4.0 There is a bug in ThreadPool that causes it to overwrite the settings installed by the Ajp13Connector. This is fixed in the nightly version of Tomcat 3.3.1 which can be found at: http://jakarta.apache.org/builds/jakarta-tomcat/nightly-3.3/ Cheers, Larry -Original Message- From: Raymond Lee [mailto:[EMAIL PROTECTED]] Sent: Friday, November 16, 2001 2:43 AM To: [EMAIL PROTECTED] Subject: Thread pool problem in Tomcat 3.3 in Windows NT 4.0 Hi, I have used Tomcat 3.3 with Apache 1.3.12 as my development servlet engine and I have a query about thread pool of Ajp13Connector in Tomcat 3.3. I define the following setting in server.xml and I expect there should be at least 100 threads created in startup of tomcat 3.3. Ajp13Connector address=127.0.0.1 port=8009 maxThreads=500 maxSpareThreads=200 minSpareThreads=100 pools=true/ However, I found there are only 25 threads instead of 100 threads created in the java virtual machine used by Tomcat 3.3. I browsed so many documents about Tomcat 3.3 and even many forums but I was unable to find any relevent information about this problem. In Tomcat 3.2, the way to define thread pool is different from that of Tomcat 3.3. Is the following setting valid in Tomcat 3.3? Connector className=org.apache.tomcat.service.PoolTcpConnector Parameter name=handler value=org.apache.tomcat.service.connector.Ajp12ConnectionHandler/ Parameter name=port value=8007/ Parameter name=max_threads value=150/ Parameter name=max_spare_threads value=100/ Parameter name=min_spare_threads value=50/ /Connector This setting can make the java virtual machine to create at least 50 threads. (I confirmed this with Task Manager) Does anyone know how to fix this? Thanks, Raymond Lee -- To unsubscribe: mailto:[EMAIL PROTECTED] For additional commands: mailto:[EMAIL PROTECTED] Troubles with the list: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4925] New: - WebApp module doesn't build on GNU/Linux
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4925. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4925 WebApp module doesn't build on GNU/Linux Summary: WebApp module doesn't build on GNU/Linux Product: Tomcat 4 Version: 4.0 Final Platform: All OS/Version: Linux Status: NEW Severity: Normal Priority: Other Component: Other Connectors AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] My configuration : * Linux 2.2.18 * Apache/1.3.9 (Unix) Debian/GNU * gcc 2.95.2 * libc6 2.1.3 * java 1.3.1 (build Blackdown-1.3.1-FCS) The WebApp module doesn't build on GNU/Linux when I procede as follows : $ ./configure --with-apxs $ make make[2]: Entering directory `/usr/local/webapp-module-1.0-tc40/apache-1.3' { APXS_LDFLAGS_SHLIB=`/usr/bin/apxs -q LDFLAGS_SHLIB` \ \ -lm -lcrypt -lnsl -ldl ; \ APXS_LDFLAGS_SHLIB=`/bin/echo ${APXS_LDFLAGS_SHLIB}` ; \ APXS_CFLAGS=`/usr/bin/apxs -q CFLAGS` \ -g -O2 \ -g -O2 \ \ -DLINUX=2 -D_REENTRANT \ -I/usr/local/webapp-module-1.0-tc40/apr/include \ -I/usr/local/webapp-module-1.0-tc40/include \ ; \ APXS_CFLAGS=`/bin/echo ${APXS_CFLAGS}` ; \ /usr/bin/apxs \ -S CFLAGS=${APXS_CFLAGS} \ -S LDFLAGS_SHLIB=${APXS_LDFLAGS_SHLIB} \ -o mod_webapp.so \ -c mod_webapp.c \ /usr/local/webapp-module-1.0-tc40/lib/libwebapp.a \ /usr/local/webapp-module-1.0-tc40/lib/libapr.a ; \ } Bareword found where operator expected at (eval 6) line 1, near -DLINUX=2 -DEAPI -DTARGET=apache (Missing operator before apache?) Bareword apache not allowed while strict subs in use at (eval 6) line 1. String found where operator expected at (eval 6) line 1, near apache -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -g -O2 -g -O2 -DLINUX=2 -D_REENTRANT -I/usr/local/webapp-module-1.0-tc40/apr/include -I/usr/local/webapp-module-1.0-tc40/include gcc -DLINUX=2 -DEAPI -DTARGET=apache -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_MODULE -I/usr/include/apache-1.3 -c mod_webapp.c mod_webapp.c:70: wa.h: No such file or directory apxs:Break: Command failed with rc=65536 make[2]: *** [mod_webapp.so] Error 1 make[2]: Leaving directory `/usr/local/webapp-module-1.0-tc40/apache-1.3' make[1]: Exiting directory apache-1.3 make[1]: *** [template] Error 2 make[1]: Leaving directory `/usr/local/webapp-module-1.0-tc40' make: *** [apache-1.3-build] Error 2 = To be able to build the Apache module I have had to modify apache-1.3/Makefile.in. After the modification the build went to its end without error and I could use Apache-Tomcat as expected. So it seems that those 2 include directories were needed: -I$(APR_INCDIR) \ -I$(SRCDIR)/include \ $(MOD): $(SRCS) $(TGTDIR)/lib/libapr.a $(TGTDIR)/lib/libwebapp.a { APXS_LDFLAGS_SHLIB=`$(APXS) -q LDFLAGS_SHLIB` \ $(APR_LDFLAGS) \ $(APR_LIBS) ; \ APXS_LDFLAGS_SHLIB=`$(ECHO) $${APXS_LDFLAGS_SHLIB}` ; \ APXS_CFLAGS=`$(APXS) -q CFLAGS` \ $(CFLAGS) \ $(APR_CFLAGS) \ $(CPPFLAGS) \ $(APR_CPPFLAGS) \ -I$(APR_INCDIR) \ -I$(SRCDIR)/include \ $(APR_INCLUDES) ; \ APXS_CFLAGS=`$(ECHO) $${APXS_CFLAGS}` ; \ $(APXS) \ -S CFLAGS=$${APXS_CFLAGS} \ -I$(APR_INCDIR) \ -I$(SRCDIR)/include \ -S LDFLAGS_SHLIB=$${APXS_LDFLAGS_SHLIB} \ -o $@ \ -c mod_webapp.c \ $(TGTDIR)/lib/libwebapp.a \ $(TGTDIR)/lib/libapr.a ; \ } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Off for quite a while...
Pier Fumagalli wrote: Fellow Titanium is coming with me anyway Well at least you have your priorities correct :-) Many many thanks for the effort and dedication you've shown and put into making tomcat/apache/jserv/cocoon,etc. useful. Many people go through life with nothing to show for their efforts, you have shown much and have made a large impact in many lives. Enjoy yourself. -- Brian Millett Enterprise Consulting Group Shifts in paradigms (314) 205-9030 often cause nose bleeds. [EMAIL PROTECTED] Greg Glenn -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4930] New: - java.io.StreamCorruptedException: Type code out of range, is 0 with Apache WebApp module
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4930. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4930 java.io.StreamCorruptedException: Type code out of range, is 0 with Apache WebApp module Summary: java.io.StreamCorruptedException: Type code out of range, is 0 with Apache WebApp module Product: Tomcat 4 Version: 4.0 Final Platform: PC OS/Version: Linux Status: NEW Severity: Major Priority: Other Component: Other Connectors AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] My configuration : * Linux 2.2.18 * Apache/1.3.9 (Unix) Debian/GNU * gcc 2.95.2 * libc6 2.1.3 * java 1.3.1 (build Blackdown-1.3.1-FCS) The application I maintained works fine with Apache+Tomcat 3.2.3 (with mod_jk, using ajp13). I decided to give a try with Apache+Tomcat 4.0.1 (with webapp module). My application uses lots of communication between applet and servlets. This communication is done through the use of serialized objects. It works fine with Tomcat 3.2.3. And with Tomcat 4.0.1 and module WebApp the servlets can't deserialize anymore the objects they read from the HttpServletRequest and a java.io.StreamCorruptedException is thrown : 2006 17:43:26 ERROR [Thread-4] State - de-serialization failure -- Control information in the stream is inconsistent java.io.StreamCorruptedException: Type code out of range, is 0 at java.io.ObjectInputStream.peekCode(ObjectInputStream.java:1556) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:292) at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263) at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at com.mine.server.GlobalServlet.readRequest(GlobalServlet.java:190) at com.mine.server.GlobalServlet.doPost(GlobalServlet.java:157) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446) at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.warp.WarpRequestHandler.handle
Performance of tomcat 3.2.3
Hi everyone, I'm working on a project for a client that involves a servlet engine component. I suggested tomcat since I am most familiar with it and it seems the most compliant servlet engine around. My client has mentioned concerns about tomcat's performance and now is insisting on using IBM websphere 4.0 My suspicion is that tomcat's performance will be fine for this application, but I would like to have some hard numbers to back up my claim. Does anyone know of any kind of tool or code out there that can measure http and https performance? Thanks in advance. -Mike Jennings
DO NOT REPLY [Bug 4922] - getRealPath().exists() yields security exception
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922 getRealPath().exists() yields security exception --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 09:44 --- In servlet 2.3 environments, you should also consider using ServletContext.getResourcePaths() to list the contents of the WAR directory. This will work even in servlet containers that do not expand your webapp into an unpacked directory structure. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Performance of tomcat 3.2.3
On Fri, Nov 16, 2001 at 09:16:18AM -0800, Michael Jennings wrote: Hi everyone, I'm working on a project for a client that involves a servlet engine component. I suggested tomcat since I am most familiar with it and it seems the most compliant servlet engine around. My client has mentioned concerns about tomcat's performance and now is insisting on using IBM websphere 4.0 FWIW, I've heard of nothing but bad experiences with WebSphere. My suspicion is that tomcat's performance will be fine for this application, but I would like to have some hard numbers to back up my claim. Does anyone know of any kind of tool or code out there that can measure http and https performance? http://httpd.apache.org/test/flood/ If you enable the HotSpot Server VM, you'll get about as good as you can with any Java application. -- justin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4806] - include HTML page encoding problem
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4806. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4806 include HTML page encoding problem [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WONTFIX --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 10:07 --- When you use RequestDispatcher.include() or jsp:include, it is the responsibility of the included resource (not the servlet container) to return exactly what you want. In the case of static resources served by DefaultServlet, that would require the addition of a non-standard way to indicate the desired character set (perhaps by adding a request parameter on the include) -- and this would be Tomcat-specific because there is no such mechanism defined in the servlet API, so your application would not be portable to any other server. An alternative approach would be to define your own servlet that served out static content, but *did* take a request parameter to define the character set requested. This would be pretty simple logic: * Determine the path of the desired resource via request.getPathInfo() * Call ServletContext.getResourceAsStream() to get an InputStream to the resource * Determine which character encoding is required from a request parameter * Build an InputStreamReader (with the desired character encoding) around the InputStream acquired earlier * Copy the characters from the InputStreamReader to the response writer for this response. In this way, you would be insulating your application from relying on a platform specific feature. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Performance of tomcat 3.2.3
http://jakarta.apache.org/jmeter/index.html On Fri, 2001-11-16 at 12:16, Michael Jennings wrote: Hi everyone, I'm working on a project for a client that involves a servlet engine component. I suggested tomcat since I am most familiar with it and it seems the most compliant servlet engine around. My client has mentioned concerns about tomcat's performance and now is insisting on using IBM websphere 4.0 My suspicion is that tomcat's performance will be fine for this application, but I would like to have some hard numbers to back up my claim. Does anyone know of any kind of tool or code out there that can measure http and https performance? Thanks in advance. -Mike Jennings -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 4922] - getRealPath().exists() yields security exception
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4922 getRealPath().exists() yields security exception [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Additional Comments From [EMAIL PROTECTED] 2001-11-16 10:28 --- I'm quite sure I fixed that problem in the HEAD branch (try one of the latest nightly builds), by: - Canonicalizing all URLs used in permissions or in the class loader - Adding back some permissions The patches have been ported to the 4.0 branch, but it's a post-4.0.1 fix. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
FW: small contribution
-Original Message- From: Shawn Bayern [mailto:[EMAIL PROTECTED]] Sent: Thursday, November 15, 2001 9:02 PM To: Erik Stenflo Subject: Re: small contribution Hi Erik - I'm involved in Jakarta, but not directly with Tomcat. The best thing to do is to forward your message to [EMAIL PROTECTED] Best wishes! Shawn On Thu, 15 Nov 2001, Erik Stenflo wrote: shawn, you are receiving this because you are the first listed committer for tomcat. Attached is a file with two minor changes to the documentation, a small typo fix and an xml syntax fix. Thanks for the good work. Viva jakarta! -eRiK P.S. - Changes were applied to todays's nightly build, to avoid any merging issues. The changes are rather minor, so I hope it is not a waste of your time. correction2005.zip Description: correction2005.zip -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Error: null cert chain
Hello everybody, I am working on SSL communication now, I have set up Tomcat to support SSL, but I got an error when I tried to make a connection to Tomcat-SSL server. My procedures are as follows: (by the way my server and client are sitting in the same Linux PC (Lisbon)) 1. create the key pair for server and client 2. request the certificates from thawte from both of them 3. import the reply certifcates to server and client keystores 4 export the server and client certficates and import them as the trusted certficates Detailed procedures, please see the end of the mail when I desable clientAuth, everything is fine, but when I turn on the clientAuth, the following erros come up. In server side: SecureServer is listening on port 8444. Accepted connection to 192.168.0.60 (192.168.0.60) on port 40342. IOException occurred when processing request. javax.net.ssl.SSLException: null cert chain at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.ServerHandshaker.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.ServerHandshaker.processMessage([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.AppInputStream.read([DashoPro-V1.2-120198]) at java.io.FilterInputStream.read(FilterInputStream.java:69) at HTTPInputStream.readLine(HTTPServer.java:150) at HTTPInputStream.getRequest(HTTPServer.java:167) at HTTPServerThread.run(HTTPServer.java:71) in client side: [write] MD5 and SHA1 hashes: len = 16 : 14 00 00 0C D5 E8 10 77 94 5F 1A 5C 3E 6F 94 DF ...w._.\o.. Plaintext before ENCRYPTION: len = 36 : 14 00 00 0C D5 E8 10 77 94 5F 1A 5C 3E 6F 94 DF ...w._.\o.. 0010: E8 04 1B 46 74 29 F0 17 FF A8 B2 D3 28 FA 7B E7 ...Ft)..(... 0020: A1 01 87 D4 main, WRITE: SSL v3.1 Handshake, length = 36 Exception in thread main java.io.IOException: Broken pipe at java.net.SocketOutputStream.socketWrite(Native Method) at java.net.SocketOutputStream.write(SocketOutputStream.java:83) at com.sun.net.ssl.internal.ssl.OutputRecord.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.ClientHandshaker.e([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120198]) at java.io.OutputStream.write(OutputStream.java:61) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpClient.init([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.init([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([DashoPro-V1.2-120198]) at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStream([DashoPro-V1.2-120198]) at Browser.run(Browser.java:36) Any help is appreciated!! thanks Hai Key generation procedures shown as follows: Step1 : generate key pairs for server and clients: 1. keytool -genkey -v -alias tomcat -keyalg RSA -keysize 1024 - sigalg MD5withRSA -keypass changeit -storepass changeit -storetype jks -keystore server.keystore What is your first and last name? [Unknown]: lisbon.invisiblehand.net What is the name of your organizational unit? [Unknown]: IHN What is the name of your organization? [Unknown]: IHN What is the name of your City or Locality? [Unknown]: New York What is the name of your State or Province? [Unknown]: NY What is the two-letter country code for this unit? [Unknown]: US Is CN=lisbon.invisiblehand.net, OU=IHN, O=IHN, L=New York, ST=NY, C=US correct? [no]:
cvs commit: jakarta-tomcat-4.0/webapps/tomcat-docs manager-howto.xml
remm01/11/16 11:04:06 Modified:webapps/tomcat-docs manager-howto.xml Log: - Small corrections to the manager-howto. Patch submitted by Erik Stenflo. Revision ChangesPath 1.6 +2 -2 jakarta-tomcat-4.0/webapps/tomcat-docs/manager-howto.xml Index: manager-howto.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/manager-howto.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- manager-howto.xml 2001/11/12 21:03:49 1.5 +++ manager-howto.xml 2001/11/16 19:04:06 1.6 @@ -93,7 +93,7 @@ codelt;usergt;/code for each individual user, which might look something like this: source -lt;user name=craigmcc password=secret roles=standard,managergt; +lt;user name=craigmcc password=secret roles=standard,manager /gt; /source which defines the username and password used by this individual to log on, and the role names he or she is associated with. You can @@ -113,7 +113,7 @@ /ul pThe first time you attempt to issue one of the Manager commands -described in the next section, you will be challenged to logn on, using +described in the next section, you will be challenged to log on using BASIC authentication. The username and password you enter do not matter, as long as they identify a valid user in the users database who possesses the role strongmanager/strong./p -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/webapps/tomcat-docs manager-howto.xml
remm01/11/16 11:09:09 Modified:webapps/tomcat-docs Tag: tomcat_40_branch manager-howto.xml Log: - Fix CRLF ? - Small corrections to the manager-howto. Patch submitted by Erik Stenflo. Revision ChangesPath No revision No revision 1.4.2.1 +466 -466 jakarta-tomcat-4.0/webapps/tomcat-docs/manager-howto.xml Index: manager-howto.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/manager-howto.xml,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- manager-howto.xml 2001/09/14 20:08:01 1.4 +++ manager-howto.xml 2001/11/16 19:09:09 1.4.2.1 @@ -1,466 +1,466 @@ -?xml version=1.0? -!DOCTYPE document [ - !ENTITY project SYSTEM project.xml -] -document - -project; - -properties -author email=[EMAIL PROTECTED]Craig R. McClanahan/author -titleManager App HOW-TO/title -/properties - -body - - -section name=Introduction - -pIn many production environments, it is very useful to have the capability -to deploy a new web application, or undeploy an existing one, without having -to shut down and restart the entire container. In addition, you can request -an existing application to reload itself, even if you have not declared it -to be codereloadable/code in the Tomcat 4 server -configuration file./p - -pTo support these capabilities, Tomcat 4 includes a web application -(installed by default on context path code/manager/code) that supports -the following functions:/p -ul -liDeploy a new web application, on a specified context path, from a -specified directory or WAR file pathname./li -liList the currently deployed web applications, as well as the -sessions that are currently active for those web apps./li -liCause an existing application to be reloaded./li -liUndeploy an existing web application./li -liStop an existing application (so that it becomes unavailable), but -do not undeploy it./li -liStart a stopped application (thus making it available again)./li -/ul - -pSince codeManager/code is itself a web application, it interacts with -you using standard HTTP requests and responses. However, it's user interface -is minimal, because it is intended to be accessed from scripts set up by the -system administrator. For this reason, commands are given as part of the -request URI, and responses are in the form of simple text that can be easily -parsed and processed./p - -pFuture versions of Tomcat 4 will include administrative functionality that -is presented in (at least) the following forms:/p -ul -liAs web services, so that Tomcat administration can be easily integrated -into remote and/or non-Java mnagement environments./li -liAs a web application with a nice user interface (built on top of the -web services processing layer) for easy Tomcat administration via a -web browser./li -/ul - -/section - -section name=Configuring Manager Application Access - -blockquoteem -pThe description below uses the variable name $CATALINA_HOME -to refer to the directory into which you have installed Tomcat 4, -and is the base directory against which most relative paths are -resolved. However, if you have configured Tomcat 4 for multiple -instances by setting a CATALINA_BASE directory, you should use -$CATALINA_BASE instead of $CATALINA_HOME for each of these -references./p -/em/blockquote - -pIt would be quite unsafe to ship Tomcat with default settings that allowed -anyone on the Internet to execute the Manager application on your server. -Therefore, the Manager application is shipped with the requirement that anyone -who attempts to use it must authenticate themselves, using a username and -password that have the role strongmanager/strong associated with them. -Further, there is no username in the default users file -(conf$CATALINA_HOME/conf/tomcat-users.xml/conf) that is assigned this -role. Therefore, access to the Manager application is completely disabled -by default./p - -pTo enable access to the Manager web application, you must either create -a new username/password combination and associate the role name -strongmanager/strong with it, or add the strongmanager/strong role -to some existing username/password combination. Exactly where this is done -depends on which codeRealm/code implementation you are using:/p -ul -liemMemoryRealm/em - If you have not customized your -code$CATALINA_HOME/conf/server.xml/code to select a different one, -Tomcat 4 defaults to an XML-format file stored at -code$CATALINA_HOME/conf/tomcat-users.xml/code, which
Re: Portable SSL Support
I was thinking of moving it to Http10Interceptor.getInfo, but otherwise that was more or less what I was thinking. - Original Message - From: jean-frederic clere [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED] Sent: Friday, November 16, 2001 3:10 AM Subject: Re: Portable SSL Support [EMAIL PROTECTED] wrote: On 14 Nov 2001, Eric Rescorla wrote: Well, I suppose that since JDK 1.1.x didn't stop you from putting classes in java. I could do my own version of java.security.cert.X509Certificate. A little gross but perhaps the best plan. The alternative is to blatantly violate the spec in 1.1 and just deliver something else. I would say - don't worry about JDK1.1. Support for JDK1.1 is important for embeded devices ( but even there, GCJ does have X509Certificate - it already supports a large subset of JDK1.2, and that's included ). You have to use request.getAttribute() in the JSPs/servlets. Right, but that doesn't mean that we have to expose the SSLSupport interface. Instead we could break out each individual property we cared about into it's own attribute. To be consistant with 2.3 containers, I'd go with individually named attributes. Fine with me. Anyone object to this? Individual attributes are good, but if possible with lazy evaluation. The getInfo() callback in BaseInterceptor is supposed to do exactly that - allow you to lazy-evaluate expensive request fields, so only servlets that ask for the information will pay for it. In TC3.3: We have the following in Http10Interceptor.java: +++ public Object getAttribute(String name) { if (name.equals(javax.servlet.request.X509Certificate)) { return(certcompat.getX509Certificates(socket)); } return(super.getAttribute(name)); } +++ A note stored via request.setNote(SSLSupport,SSLSupport) somewhere in retrieved by getNote. The code ends to be: +++ public Object getAttribute(String name) { if (name.equals(javax.servlet.request.X509Certificate)) { SSLSupport sslsupport = getNote(SSLSupport); if (sslsupport==null) return(null); return(sslsupport.getX509Certificates(socket)); } return(super.getAttribute(name)); } +++ Ideas? Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[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: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Portable SSL Support
William Barker [EMAIL PROTECTED] writes: I was thinking of moving it to Http10Interceptor.getInfo, but otherwise that was more or less what I was thinking. Actually, ISTM that eventually this belongs in Request.getInfo(), since that allows the use of SSLSupport with Ajp as well. For the moment, though, I agree that it belongs in Http10Interceptor. -Ekr -- [Eric Rescorla [EMAIL PROTECTED]] http://www.rtfm.com/ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native build.xml
mmanders01/11/16 13:32:03 Modified:jk/native build.xml Log: Added alternate targets (since NLM names are limited to 8.3). Revision ChangesPath 1.15 +5 -0 jakarta-tomcat-connectors/jk/native/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/build.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- build.xml 2001/11/15 19:38:02 1.14 +++ build.xml 2001/11/16 21:32:03 1.15 @@ -68,6 +68,8 @@ /depends !-- Platform-specific tags -- + altSoFile value=jni_conn if=netware / + def name=N_PLAT_NLM if=netware info=Building for NetWare platform / def name=NETWARE if=netware @@ -272,6 +274,7 @@ include name=${java.home}/../include / !-- Platform specific includes -- + include name=${novellndk.dir}/include/nlm if=netware / include name=${novellndk.dir}/include if=netware / include name=${java.home}/../include/netware if=netware / @@ -285,6 +288,8 @@ /depends !-- Platform-specific tags -- + altSoFile value=nsapi_rd if=netware / + def name=N_PLAT_NLM if=netware info=Building for NetWare platform / def name=NETWARE if=netware -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant SoTask.java
mmanders01/11/16 13:32:16 Modified:jk/jkant/java/org/apache/jk/ant SoTask.java Log: Added alternate targets (since NLM names are limited to 8.3). Revision ChangesPath 1.20 +12 -0 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/SoTask.java Index: SoTask.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/SoTask.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- SoTask.java 2001/11/12 23:34:47 1.19 +++ SoTask.java 2001/11/16 21:32:16 1.20 @@ -122,6 +122,7 @@ protected Vector exports= new Vector(); // used by the NetWare, win32 linkers protected Vector modules= new Vector(); // used by the NetWare linker protected Vector linkOpts = new Vector(); // used by the NetWare, win32 linkers +protected Vector altSoFiles = new Vector(); // used by the NetWare linker // Computed fields protected Vector compileList; // [Source] @@ -164,6 +165,7 @@ so.compileList=compileList; so.compiler=compiler; so.co_mapper=co_mapper; + so.altSoFiles=altSoFiles; } /** @deprecated use setTarget @@ -242,6 +244,16 @@ public void addNLMModule(JkData module) { module.setProject( project ); modules.add(module); +} + +/** + * Add an alternate target since some platforms (NetWare) have file name + * limitations. + * + */ +public void addAltSoFile(JkData altSo) { + altSo.setProject( project ); +altSoFiles.add(altSo); } /** Set the target for this compilation. Don't include any -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers MwldLinker.java
mmanders01/11/16 13:32:24 Modified:jk/jkant/java/org/apache/jk/ant/compilers MwldLinker.java Log: Added alternate targets (since NLM names are limited to 8.3). Revision ChangesPath 1.5 +15 -0 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MwldLinker.java Index: MwldLinker.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MwldLinker.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MwldLinker.java 2001/11/12 23:31:58 1.4 +++ MwldLinker.java 2001/11/16 21:32:24 1.5 @@ -81,6 +81,21 @@ so.setExtension(.nlm); so.duplicateTo( this ); project.setProperty(netware, true); + +Enumeration e=altSoFiles.elements(); +while (e.hasMoreElements()) +{ +JkData data = (JkData) e.nextElement(); +String altSo = data.getValue(); +if (altSo == null) +continue; +else +{ +so.setTarget(altSo);// set it on the master copy +setTarget(altSo); // set it on ourself +break; +} +} } public void execute() throws BuildException { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Tomcat 4.0 on IIS
I managed to run Tomcat 4.0 with IIS using the ISAPI module provided for Tomcat 3.3 for AJPV13. I had to use the workers.properties uriworkers.properties to make it work from Tomcat 3.3. If the Tomcat Developer Community does not know of any known issue with using Tomcat 3.3 ISAPI Module for Tomcat 4.0, I will be happy to provide an Installation Guide sample files to be put as a part of Tomcat 4.0. I say this because I have seen repeated request by Tomcat 4.0 Users for IIS support. Craig, can u take a minute to advise. Thanks, Rajan Gupta __ Do You Yahoo!? Find the one for you at Yahoo! Personals http://personals.yahoo.com -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Error: null cert chain
Hai Wang [EMAIL PROTECTED] writes: I am working on SSL communication now, I have set up Tomcat to support SSL, but I got an error when I tried to make a connection to Tomcat-SSL server. My procedures are as follows: (by the way my server and client are sitting in the same Linux PC (Lisbon)) 1. create the key pair for server and client 2. request the certificates from thawte from both of them 3. import the reply certifcates to server and client keystores 4 export the server and client certficates and import them as the trusted certficates Detailed procedures, please see the end of the mail when I desable clientAuth, everything is fine, but when I turn on the clientAuth, the following erros come up. Let's start by finding out whether the client is actually performing client auth. Can you get an ssldump trace of the connection? (you can get ssldump from http://www.rtfm.com/ssldump). You'll want to use the -A and -N flags. Once we know what's happening we can try to figure out why. -Ekr -- [Eric Rescorla [EMAIL PROTECTED]] Author of SSL and TLS: Designing and Building Secure Systems http://www.rtfm.com/ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Portable SSL Support
On 16 Nov 2001, Eric Rescorla wrote: William Barker [EMAIL PROTECTED] writes: I was thinking of moving it to Http10Interceptor.getInfo, but otherwise that was more or less what I was thinking. Actually, ISTM that eventually this belongs in Request.getInfo(), since that allows the use of SSLSupport with Ajp as well. For the moment, though, I agree that it belongs in Http10Interceptor. Or even better, in SSLInterceptor. No need to change Request or the core - if it can be done in a module, it's better to do it this way. Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Asking Tomcat 4.x to accept a different JNDI initial factory
Hi Remy, I know that you are busy but may I know when we will see this change? I just checked the CVS repository about 1 hour ago and it's not there yet. Will it make it into the next release? We are trying to debate when we should move to Tomcat 4 as we are currently on Tomcat 3. thanks a lot!!! On Monday, November 5, 2001, at 03:53 PM, Remy Maucherat wrote: Hi folks, Tomcat 4.x has its own JNDI server. But I would like it to use a different initial factory. One of the ways is to pass the value -Djava.naming.factory.initial=com.mycompany.rmi.jndi.CtxFactory But Catalina.java has hard coded org.apache.naming.java.javaURLContextFactory as its factory, completely ignoring the System property. I added the codes to Catalina.java (see diff below). Is my analysis correct? If not, what should I do? Thanks, hanming % cd jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup % diff Catalina.java Catalina.java.org 452,455d451 value = System.getProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY); if (value == null) { value = org.apache.naming.java.javaURLContextFactory; } 457c453 value); --- org.apache.naming.java.javaURLContextFactory); Yes, doing that may be more reasonable. I'll apply the patch. Remy -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Asking Tomcat 4.x to accept a different JNDI initial factory
Oops, that was meant to be a private message. My deepest apologies! On Friday, November 16, 2001, at 01:56 PM, Han Ming Ong wrote: Hi Remy, I know that you are busy but may I know when we will see this change? I just checked the CVS repository about 1 hour ago and it's not there yet. Will it make it into the next release? We are trying to debate when we should move to Tomcat 4 as we are currently on Tomcat 3. thanks a lot!!! On Monday, November 5, 2001, at 03:53 PM, Remy Maucherat wrote: Hi folks, Tomcat 4.x has its own JNDI server. But I would like it to use a different initial factory. One of the ways is to pass the value -Djava.naming.factory.initial=com.mycompany.rmi.jndi.CtxFactory But Catalina.java has hard coded org.apache.naming.java.javaURLContextFactory as its factory, completely ignoring the System property. I added the codes to Catalina.java (see diff below). Is my analysis correct? If not, what should I do? Thanks, hanming % cd jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup % diff Catalina.java Catalina.java.org 452,455d451 value = System.getProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY); if (value == null) { value = org.apache.naming.java.javaURLContextFactory; } 457c453 value); --- org.apache.naming.java.javaURLContextFactory); Yes, doing that may be more reasonable. I'll apply the patch. Remy -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant SoTask.java
costin 01/11/16 14:18:50 Modified:jk/jkant/java/org/apache/jk/ant SoTask.java Log: SoTask will delegate to the CompilerAdapter the detection of files to be compiled. This simplifies things a bit and gives CompileAdapter a way to contol all files. Revision ChangesPath 1.21 +19 -97 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/SoTask.java Index: SoTask.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/SoTask.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- SoTask.java 2001/11/16 21:32:16 1.20 +++ SoTask.java 2001/11/16 22:18:50 1.21 @@ -125,10 +125,10 @@ protected Vector altSoFiles = new Vector(); // used by the NetWare linker // Computed fields -protected Vector compileList; // [Source] +//protected Vector compileList; // [Source] protected Vector srcList=new Vector(); protected CompilerAdapter compiler; -protected GlobPatternMapper co_mapper; +//protected GlobPatternMapper co_mapper; public SoTask() {}; @@ -162,9 +162,9 @@ so.modules=modules; so.linkOpts=linkOpts; so.srcList=srcList; - so.compileList=compileList; +// so.compileList=compileList; so.compiler=compiler; - so.co_mapper=co_mapper; +// so.co_mapper=co_mapper; so.altSoFiles=altSoFiles; } @@ -353,7 +353,7 @@ // clean, libtool should be just a fallback. public void execute() throws BuildException { compiler=findCompilerAdapter(); - co_mapper=compiler.getOMapper(); +// co_mapper=compiler.getOMapper(); LinkerAdapter linker=findLinkerAdapter(); if( soFile==null ) @@ -363,16 +363,20 @@ // XXX makedepend-type dependencies - how ?? // We could generate a dummy Makefile and parse the content... - findCompileList(); +findSourceFiles(); - compiler.compile( compileList ); - +// Copy all settings into compiler +this.duplicateTo(compiler); + compiler.compile( srcList ); + +// XXX move this checking to linker File soTarget=new File( buildDir, soFile + soExt ); - if( compileList.size() == 0 soTarget.exists()) { + if( compiler.getCompiledFiles().size() == 0 soTarget.exists()) { // No dependency, no need to relink return; } +this.duplicateTo(linker); linker.link(srcList); } @@ -442,7 +446,8 @@ return linkerAdapter; } - +/** Find all source files declared with src elements + */ public void findSourceFiles() { if (buildDir == null) buildDir = project.getBaseDir(); @@ -459,93 +464,10 @@ } } -public void findCompileList() throws BuildException { - findSourceFiles(); - compileList=new Vector(); - -for (int i = 0; i srcList.size(); i++) { - Source source=(Source)srcList.elementAt(i); - File srcFile=source.getFile(); - -if (!srcFile.exists()) { -throw new BuildException(Source \ + srcFile.getPath() + - \ does not exist!, location); -} - - // Check the dependency - if( needCompile( source ) ) - compileList.addElement( source ); - } - - if( checkDepend() ) { - log(Dependency expired, removing .o files and doing a full build ); - removeOFiles(); - compileList=new Vector(); - for(int i=0; isrcList.size(); i++ ) { - Source source=(Source)srcList.elementAt(i); - File srcFile = source.getFile(); - compileList.addElement( source ); - } - } -} - -long oldestO=System.currentTimeMillis(); -File oldestOFile=null; - -/** Verify if a .c file needs compilation. - * As with javac, we assume a fixed build structure, where all .o - * files are in a separate directory from the sources ( no mess ). - * - * XXX Hack makedepend somehow into this. - */ -public boolean needCompile( Source source ) { - // For each .c file we'll have a .o file in the build dir, - // with the same name. - File srcF = source.getFile(); - if( !srcF.exists() ) - return false; - - String targetName=source.getTargetFile( co_mapper ); - if( targetName==null ) - return true; // strange, probably different extension ? - File target=new File( buildDir, targetName ); - // System.out.println(XXX + target ); - if( ! target.exists() ) -
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers CompilerAdapter.java
costin 01/11/16 14:21:03 Modified:jk/jkant/java/org/apache/jk/ant/compilers CompilerAdapter.java Log: Moved functionality from SoCompiler. Easier interfacing with the implementations. Use packages in compilation of the .c files ( using the 'base dir' on the src path to determine the package, same as in javac ) Add a message with the number of files to be compiled. Revision ChangesPath 1.6 +135 -6 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/CompilerAdapter.java Index: CompilerAdapter.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/CompilerAdapter.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CompilerAdapter.java 2001/11/11 01:09:59 1.5 +++ CompilerAdapter.java 2001/11/16 22:21:03 1.6 @@ -84,6 +84,7 @@ */ public abstract class CompilerAdapter extends SoTask { SoTask so; +Vector compileList; public CompilerAdapter() { so=this; @@ -94,17 +95,145 @@ so.duplicateTo( this ); } -public GlobPatternMapper getOMapper() { -return null; -} +// /** @deprecated +// */ +// public GlobPatternMapper getOMapper() { +// return null; +// } + +/** Return the files that depend on a src file. + * The first item should be the .o file used for linking. + */ +public abstract String[] getTargetFiles( Source src ); public void execute() throws BuildException { - super.findCompileList(); +super.findSourceFiles(); +Vector compileList=findCompileList(srcList); compile( compileList ); } + +/** Verify if a .c file needs compilation. + * As with javac, we assume a fixed build structure, where all .o + * files are in a separate directory from the sources ( no mess ). + * + * XXX Hack makedepend somehow into this. + */ +public boolean needCompile( Source source ) { + // For each .c file we'll have a .o file in the build dir, + // with the same name. + File srcF = source.getFile(); + if( !srcF.exists() ) { +if( debug 0 ) +log(No source file + srcF ); +return false; +} + + String targetNames[]= getTargetFiles( source ); + if( targetNames==null || targetNames.length==0 ) { +if( debug 0 ) +log(No target files + srcF ); + return true; // strange, probably different extension ? +} +String targetName=targetNames[0]; + +String targetDir=source.getPackage(); +File f1=new File( buildDir, targetDir ); +File target=new File( f1, targetName ); + // System.out.println(XXX + target ); + if( ! target.exists() ) { +if( debug 0 ) +log(Target doesn't exist + target ); + return true; +} + if( oldestO target.lastModified() ) { + oldestO=target.lastModified(); + oldestOFile=target; + } + if( srcF.lastModified() target.lastModified() ) + return true; + + if( debug 0 ) + log(No need to compile + srcF + target + target ); + return false; +} + +/** Remove all generated files, cleanup + */ +public void removeOFiles( Vector srcList ) { +for (int i = 0; i srcList.size(); i++) { +//log( Checking + (Source)srcList.elementAt(i)); +Source source=(Source)srcList.elementAt(i); + String targetNA[]=getTargetFiles(source); + if( targetNA==null ) + continue; +String targetDir=source.getPackage(); +File f1=new File( buildDir, targetDir ); +for( int j=0; jtargetNA.length; j++ ) { +File target=new File( f1, targetNA[j] ); +// Check the dependency +if( target.exists() ) { +// Remove it - we'll do a full build +target.delete(); +log(Removing + target ); +} +} +} +} + +// XXX modified as side-effect of checking files with needCompile() +long oldestO=System.currentTimeMillis(); +File oldestOFile=null; + +/** Find the subset of the source list that needs compilation. + */ +protected Vector findCompileList(Vector srcList) throws BuildException { +Vector compileList=new Vector(); + +for (int i = 0; i srcList.size(); i++) { + Source source=(Source)srcList.elementAt(i); + File srcFile=source.getFile(); + +
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers LinkerAdapter.java
costin 01/11/16 14:21:53 Modified:jk/jkant/java/org/apache/jk/ant/compilers LinkerAdapter.java Log: Same changes as in CompilerAdapter - use abstract class, base functionality. Revision ChangesPath 1.4 +13 -3 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/LinkerAdapter.java Index: LinkerAdapter.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/LinkerAdapter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LinkerAdapter.java2001/11/10 16:51:32 1.3 +++ LinkerAdapter.java2001/11/16 22:21:53 1.4 @@ -75,18 +75,28 @@ * reflection)./p * * @author Jay Dickon Glanville a href=mailto:[EMAIL PROTECTED];[EMAIL PROTECTED]/a + * @author Costin Manolache */ -public interface LinkerAdapter { +public abstract class LinkerAdapter extends SoTask { +protected SoTask so; /** * Sets the compiler attributes, which are stored in the Javac task. */ -void setSoTask( SoTask attributes ); +public void setSoTask(SoTask so ) { + this.so=so; +} +public void execute() throws BuildException { + findSourceFiles(); + link(this.srcList); +} + + /** * Executes the task. * * @return has the compilation been successful */ -boolean link(Vector files) throws BuildException; +public abstract boolean link(Vector srcFiles) throws BuildException; } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers CcCompiler.java LibtoolLinker.java MsvcCompiler.java MsvcLinker.java MwldLinker.java
costin 01/11/16 14:23:22 Modified:jk/jkant/java/org/apache/jk/ant/compilers CcCompiler.java LibtoolLinker.java MsvcCompiler.java MsvcLinker.java MwldLinker.java Log: Changes in the implementation, reflecting api changes. Revision ChangesPath 1.6 +8 -6 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/CcCompiler.java Index: CcCompiler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/CcCompiler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CcCompiler.java 2001/11/11 01:09:59 1.5 +++ CcCompiler.java 2001/11/16 22:23:22 1.6 @@ -70,17 +70,19 @@ * @author Costin Manolache */ public class CcCompiler extends CompilerAdapter { - +GlobPatternMapper co_mapper=new GlobPatternMapper(); + public CcCompiler() { super(); -}; - -public GlobPatternMapper getOMapper() { - GlobPatternMapper co_mapper=new GlobPatternMapper(); co_mapper.setFrom(*.c); co_mapper.setTo(*.o); +} - return co_mapper; +public String[] getTargetFiles( Source src ) { +File srcFile = src.getFile(); +String name=srcFile.getName(); + +return co_mapper.mapFileName( name ); } /** Compile using 'standard' gcc flags. This assume a 'current' gcc on 1.5 +4 -15 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/LibtoolLinker.java Index: LibtoolLinker.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/LibtoolLinker.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LibtoolLinker.java2001/11/10 16:51:06 1.4 +++ LibtoolLinker.java2001/11/16 22:23:22 1.5 @@ -69,24 +69,13 @@ * * @author Costin Manolache */ -public class LibtoolLinker extends SoTask implements LinkerAdapter { +public class LibtoolLinker extends LinkerAdapter { SoTask so; -protected static GlobPatternMapper lo_mapper=new GlobPatternMapper(); -static { - lo_mapper.setFrom(*.c); - lo_mapper.setTo(*.lo); -} +GlobPatternMapper lo_mapper=new GlobPatternMapper(); public LibtoolLinker() { so=this; -}; - -public void setSoTask(SoTask so ) { - this.so=so; -} - -public void execute() throws BuildException { - findSourceFiles(); - link(this.srcList); + lo_mapper.setFrom(*.c); + lo_mapper.setTo(*.lo); } /** Link using libtool. 1.3 +9 -10 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MsvcCompiler.java Index: MsvcCompiler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MsvcCompiler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MsvcCompiler.java 2001/11/12 23:33:48 1.2 +++ MsvcCompiler.java 2001/11/16 22:23:22 1.3 @@ -69,21 +69,20 @@ * @author Ignacio J. Ortega */ public class MsvcCompiler extends CompilerAdapter { - -static GlobPatternMapper co_mapperS=new GlobPatternMapper(); -static { - co_mapperS.setFrom(*.c); - co_mapperS.setTo(*.obj); -} +GlobPatternMapper co_mapperS=new GlobPatternMapper(); public MsvcCompiler() { super(); -}; - -public GlobPatternMapper getOMapper() { - return co_mapperS; + co_mapperS.setFrom(*.c); + co_mapperS.setTo(*.obj); } +public String[] getTargetFiles( Source src ) { +File srcFile = src.getFile(); +String name=srcFile.getName(); + +return co_mapperS.mapFileName( name ); +} public void setSoTask(SoTask so ) { this.so=so; 1.3 +6 -3 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MsvcLinker.java Index: MsvcLinker.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/MsvcLinker.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MsvcLinker.java 2001/11/12 23:32:45 1.2 +++ MsvcLinker.java 2001/11/16 22:23:22 1.3 @@ -69,12 +69,15 @@ * * @author Ignacio J. Ortega */ -public class MsvcLinker extends SoTask implements LinkerAdapter { +public class MsvcLinker extends LinkerAdapter { SoTask so; - +GlobPatternMapper co_mapper=new GlobPatternMapper(); +
cvs commit: jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers GcjCompiler.java GcjLinker.java
costin 01/11/16 14:26:50 Modified:jk/jkant/java/org/apache/jk/ant/compilers GcjCompiler.java GcjLinker.java Log: Important change - allow the compilation of static files ( .properties, .dtd, etc ). GCJ can 'compile' those resources to .o files that are linked in the .so, in order to have a self-contained executable. ( it's the same with including them in a .jar file, for non-native compilation ) Added an experimental option to build .a file ( not yet completed - I'm still not sure how this work ) Revision ChangesPath 1.5 +32 -14 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/GcjCompiler.java Index: GcjCompiler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/GcjCompiler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- GcjCompiler.java 2001/11/11 01:09:59 1.4 +++ GcjCompiler.java 2001/11/16 22:26:50 1.5 @@ -69,20 +69,25 @@ * @author Costin Manolache */ public class GcjCompiler extends CcCompiler { -static GlobPatternMapper co_mapperS=new GlobPatternMapper(); -static { - co_mapperS.setFrom(*.java); - co_mapperS.setTo(*.o); -} public GcjCompiler() { super(); + co_mapper.setFrom(*.java); + co_mapper.setTo(*.o); } -public GlobPatternMapper getOMapper() { - return co_mapperS; +public String[] getTargetFiles( Source src ) { +File srcFile = src.getFile(); +String name=srcFile.getName(); +if( name.endsWith( .java ) ) { +return co_mapper.mapFileName( name ); +} else { +return new String[] +{ name + .o }; +} } + /** Compile using libtool. */ public void compileSingleFile(Source sourceObj) throws BuildException { @@ -95,26 +100,39 @@ cmd.createArgument().setValue(-c ); if( optG ) { - cmd.createArgument().setValue(-g ); +// cmd.createArgument().setValue(-g ); +cmd.createArgument().setValue(-ggdb3 ); +//cmd.createArgument().setValue(-save-temps ); // cmd.createArgument().setValue(-Wall); } addOptimize( cmd ); addExtraFlags( cmd ); cmd.createArgument().setValue(-fPIC ); addIncludes( cmd ); - - cmd.createArgument().setValue( -o ); - File ff=new File( buildDir, sourceObj.getTargetFile(co_mapperS)); - cmd.createArgument().setValue( ff.toString() ); +String targetDir=sourceObj.getPackage(); try { - String targetDir=sourceObj.getPackage(); File f1=new File( buildDir, targetDir ); f1.mkdirs(); +cmd.createArgument().setValue( -o ); +String targetO[]=getTargetFiles( sourceObj ); +if( targetO==null ) { +log(no target for + sourceObj.getFile() ); +return; +} +File ff=new File( f1, targetO[0]); +cmd.createArgument().setValue( ff.toString() ); } catch( Exception ex ) { ex.printStackTrace(); } - cmd.createArgument().setValue( source ); +if( ! source.endsWith(.java) ) { +cmd.createArgument().setValue(-R ); +cmd.createArgument().setValue( targetDir + / + f.getName() ); +//System.out.println(XXX resource + targetDir + / + f.getName() ); +} else { +//cmd.createArgument().setValue(-fno-bounds-check ); +} +cmd.createArgument().setValue( source ); project.log( Compiling + source); if( debug 0 ) 1.2 +30 -8 jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/GcjLinker.java Index: GcjLinker.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/jkant/java/org/apache/jk/ant/compilers/GcjLinker.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- GcjLinker.java2001/11/10 16:48:38 1.1 +++ GcjLinker.java2001/11/16 22:26:50 1.2 @@ -69,17 +69,29 @@ * * @author Costin Manolache */ -public class GcjLinker extends SoTask implements LinkerAdapter { +public class GcjLinker extends LinkerAdapter { SoTask so; -protected static GlobPatternMapper lo_mapper=new GlobPatternMapper(); +protected static GlobPatternMapper co_mapper=new GlobPatternMapper(); static { - lo_mapper.setFrom(*.java); - lo_mapper.setTo(*.o); + co_mapper.setFrom(*.java); + co_mapper.setTo(*.o); } public GcjLinker() {
cvs commit: jakarta-tomcat-connectors/jk/jkant buildJakarta.xml
costin 01/11/16 14:33:30 Added: jk/jkant buildJakarta.xml Log: Added a sample on how to use gcj task ( don't try to use it, it'll not work with the released gcc ). Gcj support is extremely experimental in jkant - it's just an example of a compiler using complex options that can be plugged without too much effort into jkant. ( of course, that's nothing compared with what Henri is trying to do with his exotic compilers ) Revision ChangesPath 1.1 jakarta-tomcat-connectors/jk/jkant/buildJakarta.xml Index: buildJakarta.xml === ?xml version=1.0 ? !-- EXPERIMENTAL - JUST AN EXAMPLE ON HOW TO USE GCJ TASK -- !-- MAY REQUIRE SMALL/TRIVIAL MODIFICATION IN SOURCES -- !-- REQUIRES GCJ FROM CVS - 3.0.1 DOESN'T WORK -- project name=tomcat_gcj default=main basedir=. descriptionNative build for tomcat/description property file=${user.home}/.ant.properties / property file=${user.home}/build.properties / property file=build.properties / property name=LIB value=/opt/java / property name=tomcat.src value=/ws/33 / property name=ant.src value=/ws/jakarta/jakarta-ant / property name=crimson.src value=/ws/jakarta/xml-crimson / property name=xmlcommons.src value=/ws/jakarta/xml-commons / property name=servletapi.src value=/ws/jakarta/jakarta-servletapi / path id=jkant pathelement location=build/jkant.jar/ /path property name=native.dir location=. / property name=so.debug value=true / property name=so.optimize value=true / property name=so.profile value=false / !-- Targets -- target name=main depends=all /target target name=init taskdef resource=META-INF/ant.tasks classpathref=jkant / mkdir dir=build/ mkdir dir=build/obj/ /target target name=all depends=init,org-apache-crimson,javax-servlet,javax-xml,org-apache-tomcat,examples,link / target name=link exec dir=build/obj executable=gcj arg value=--main=org.apache.tomcat.startup.EmbededTomcat/ arg value=-Dtomcat.home=./ arg value=-Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl / arg value=-g/ arg value=-o/ arg value=tomcat/ arg value=lib-org-apache-tomcat.so/ arg value=lib-javax-servlet.so/ arg value=lib-org-apache-crimson.so/ arg value=lib-javax-xml.so/ arg value=lib-examples.so/ /exec /target target name=org-apache-tomcat depends=init property name=build.compiler.cc value=gcj / so sofile=lib-org-apache-tomcat buildDir=build/obj optimize=${so.optimize} debug=${so.debug} profile=${so.profile} taskDebug=0 src dir=${tomcat.src}/src/share include name=**/*.java / include name=**/*.properties / include name=**/*.dtd / exclude name=org/apache/tomcat/util/compat/JSSECertCompat.java / exclude name=org/apache/tomcat/util/net/SSLSocketFactory.java / exclude name=org/apache/tomcat/util/test/**/*.java / exclude name=org/apache/tomcat/modules/server/JNI*.java / exclude name=org/apache/jasper/**/*.java / exclude name=org/apache/jasper/compiler/CommandLineCompiler.java / exclude name=org/apache/jasper/compiler/SunJavaCompiler.java / /src src dir=${tomcat.src}/src/facade22 include name=**/*.java / exclude name=org/apache/tomcat/facade/JspInterceptor.java / exclude name=org/apache/tomcat/facade/TagPoolManagerInterceptor.java / /src includes include name=${LIB}/crimson-1.1.3/crimson.jar / include name=${tomcat.src}/src/share / include name=${tomcat.src}/src/facade22 / include name=${LIB}/jakarta-servletapi-22/lib/servlet.jar / /includes /so /target target name=ant depends=init property name=build.compiler.cc value=gcj / so sofile=lib-org-apache-tools-ant buildDir=build/obj optimize=${so.optimize} debug=${so.debug} profile=${so.profile} taskDebug=0 src dir=${ant.src}/src/main include name=**/*.java / include name=**/*.properties / include name=**/*.txt / include name=**/*.dtd / exclude name=org/apache/tools/ant/taskdefs/optional/** / exclude name=org/apache/tools/ant/types/optional/** / exclude name=org/apache/tools/ant/util/depend/** / exclude name=org/apache/tools/ant/util/regexp/JakartaOroMatcher.java / exclude name=org/apache/tools/ant/util/regexp/JakartaRegexpMatcher.java / exclude name=org/apache/tools/ant/util/regexp/Jdk14RegexpMatcher.java / exclude
Re: Portable SSL Support
In j-t-c I could see putting in RequestBase. However, since connector development (with the possible exception of Http10Interceptor, which isn't in j-t-c) is frozen in 3.3, I can't really see modifying Request. - Original Message - From: Eric Rescorla [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED] Sent: Friday, November 16, 2001 1:42 PM Subject: Re: Portable SSL Support William Barker [EMAIL PROTECTED] writes: I was thinking of moving it to Http10Interceptor.getInfo, but otherwise that was more or less what I was thinking. Actually, ISTM that eventually this belongs in Request.getInfo(), since that allows the use of SSLSupport with Ajp as well. For the moment, though, I agree that it belongs in Http10Interceptor. -Ekr -- [Eric Rescorla [EMAIL PROTECTED]] http://www.rtfm.com/ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[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: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_uri_worker_map.c jk_uri_worker_map.h
costin 01/11/16 14:37:13 Modified:jk/native/common jk_uri_worker_map.c jk_uri_worker_map.h Log: Get the number of mappings in uri_worker_map, quick exit if none. ( it is possible to configure mod_jk using setHandler, we don't want extra overhead ) Revision ChangesPath 1.11 +10 -1 jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.c Index: jk_uri_worker_map.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_uri_worker_map.c 2001/11/07 21:54:45 1.10 +++ jk_uri_worker_map.c 2001/11/16 22:37:13 1.11 @@ -67,7 +67,7 @@ * servlet container. * * * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.10 $ * + * Version: $Revision: 1.11 $ * ***/ #include jk_pool.h @@ -118,7 +118,13 @@ unsignedcapacity; }; +int uri_worker_map_size(jk_uri_worker_map_t *uw_map ) { +if( uw_map == NULL ) + return 0; +return uw_map-size; +} + /* * We are now in a security nightmare, it maybe that somebody sent * us a uri that looks like /top-secret.jsp. and the web server will @@ -444,6 +450,9 @@ const char *uri, jk_logger_t *l) { +if( uri_worker_map_size( uw_map ) = 0 ) + return NULL; + jk_log(l, JK_LOG_DEBUG, Into jk_uri_worker_map_t::map_uri_to_worker\n); 1.4 +4 -1 jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.h Index: jk_uri_worker_map.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_uri_worker_map.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_uri_worker_map.h 2001/07/02 21:13:00 1.3 +++ jk_uri_worker_map.h 2001/11/16 22:37:13 1.4 @@ -58,7 +58,7 @@ /*** * Description: URI to worker mapper header file * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.3 $ * + * Version: $Revision: 1.4 $ * ***/ #ifndef JK_URI_WORKER_MAP_H @@ -91,6 +91,9 @@ char *puri, char *pworker, jk_logger_t *l); + +int uri_worker_map_size(jk_uri_worker_map_t *uw_map ); + int uri_worker_map_close(jk_uri_worker_map_t *uw_map, jk_logger_t *l); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Portable SSL Support
+1 - Original Message - From: [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED]; EKR [EMAIL PROTECTED] Sent: Friday, November 16, 2001 1:53 PM Subject: Re: Portable SSL Support On 16 Nov 2001, Eric Rescorla wrote: William Barker [EMAIL PROTECTED] writes: I was thinking of moving it to Http10Interceptor.getInfo, but otherwise that was more or less what I was thinking. Actually, ISTM that eventually this belongs in Request.getInfo(), since that allows the use of SSLSupport with Ajp as well. For the moment, though, I agree that it belongs in Http10Interceptor. Or even better, in SSLInterceptor. No need to change Request or the core - if it can be done in a module, it's better to do it this way. Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[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: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_service.h
costin 01/11/16 14:43:18 Modified:jk/native/common jk_service.h Log: Added 2 fields in jk_endpoint_t to support jk_channel. Note that use of a channel ( as an abstraction that replace socket calls ) is optional - will be ifdef-ed until we make sure everything works fine. Revision ChangesPath 1.10 +13 -1 jakarta-tomcat-connectors/jk/native/common/jk_service.h Index: jk_service.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_service.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- jk_service.h 2001/10/13 17:36:36 1.9 +++ jk_service.h 2001/11/16 22:43:18 1.10 @@ -63,7 +63,7 @@ * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Dan Milstein [EMAIL PROTECTED]* * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.9 $ * + * Version: $Revision: 1.10 $ * ***/ #ifndef JK_SERVICE_H @@ -104,6 +104,7 @@ struct jk_ws_service; struct jk_endpoint; struct jk_worker; +struct jk_channel; typedef struct jk_ws_service jk_ws_service_t; typedef struct jk_endpoint jk_endpoint_t; typedef struct jk_worker jk_worker_t; @@ -302,6 +303,10 @@ */ void *endpoint_private; +/** Data specific to a channel connection + */ +void *channelData; + /* * Forward a request to the servlet engine. The request is described * by the jk_ws_service_t object. I'm not sure exactly how @@ -373,6 +378,13 @@ * (e.g. ajp12 or ajp13 or ajp14). */ void *worker_private; + +/* XXX Add name and all other common properties !!! + */ + +/** Communication channle used by the worker + */ +struct jk_channel *channel; /* * For all of the below (except destroy), the first argument is -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_channel.h
costin 01/11/16 14:45:20 Modified:jk/native/common jk_channel.h Log: Few changes in jk_channel, based on what was required in implementing it. Revision ChangesPath 1.4 +66 -46jakarta-tomcat-connectors/jk/native/common/jk_channel.h Index: jk_channel.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_channel.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_channel.h 2001/11/07 21:39:35 1.3 +++ jk_channel.h 2001/11/16 22:45:19 1.4 @@ -58,17 +58,19 @@ #ifndef JK_CHANNEL_H #define JK_CHANNEL_H - -#ifdef __cplusplus -extern C { -#endif /* __cplusplus */ - #include jk_global.h #include jk_logger.h #include jk_pool.h #include jk_msg_buff.h +#ifdef __cplusplus +extern C { +#endif /* __cplusplus */ + +struct jk_worker; +struct jk_endpoint; struct jk_channel; + typedef struct jk_channel jk_channel_t; /** @@ -95,52 +97,70 @@ * @author Costin Manolache */ struct jk_channel { - /** Pool for the channel - */ - jk_pool_t *pool; - jk_logger_t *logger; - - char *name; +char *name; - /** Prepare the channel, check the properties. This - * will resolve the host and do all the validations. - * ( needed to remove the dependencies on sockets in ajp) - */ - int (JK_METHOD *init)(jk_channel_t *_this ); - - /** Open the communication channel - */ - int (JK_METHOD *open)(jk_channel_t *_this ); - - /** Close the communication channel - */ - int (JK_METHOD *close)(jk_channel_t *_this ); - +/** List of properties this channel 'knows'. + * This will permit admin code to 'query' each channel + * and the setting code can better report errors. + */ +char **supportedProperties; + +struct jk_worker *worker; /* XXX Do we need it ? */ +jk_logger_t *logger; +jk_map_t *properties; +jk_pool_t *pool; /* XXX Do we need it ? */ + + +/** Prepare the channel, check the properties. This + * will resolve the host and do all the validations. + * ( needed to remove the dependencies on sockets in ajp) + * + * The channel may save or use data from the worker ( like cache + * the inet addr, etc ) + * XXX revisit this - we may pass too much that is not needed + */ +int (JK_METHOD *init)(jk_channel_t *_this, + jk_map_t *properties, + char *worker_name, + struct jk_worker *worker, + jk_logger_t *l ); + +/** Open the communication channel + */ +int (JK_METHOD *open)(jk_channel_t *_this, + struct jk_endpoint *endpoint ); + +/** Close the communication channel + */ +int (JK_METHOD *close)(jk_channel_t *_this, +struct jk_endpoint *endpoint ); + /** Send a packet - */ - int (JK_METHOD *send)(jk_channel_t *_this, - jk_msg_buf_t *b ); - - /** Receive a packet */ - int (JK_METHOD *recv)(jk_channel_t *_this, - jk_msg_buf_t *b ); - - /** Set a channel property. Properties are used to configure the - * communication channel ( example: port, host, file, shmem_name, etc). - */ - int (JK_METHOD *setProperty)(jk_channel_t *_this, -char *name, char *value); - - /** Get a channel property - */ - int (JK_METHOD *getProperty)(jk_channel_t *_this, +int (JK_METHOD *send)(jk_channel_t *_this, + struct jk_endpoint *endpoint, + char *b, int len ); + +/** Receive a packet + */ +int (JK_METHOD *recv)(jk_channel_t *_this, + struct jk_endpoint *endpoint, + char *b, int len ); + +/** Set a channel property. Properties are used to configure the + * communication channel ( example: port, host, file, shmem_name, etc). + */ +int (JK_METHOD *setProperty)(jk_channel_t *_this, + char *name, char *value); + +/** Get a channel property + */ +int (JK_METHOD *getProperty)(jk_channel_t *_this, char *name, char **value); - - void *_privatePtr; - int _privateInt; + +void *_privatePtr; }; - + #ifdef __cplusplus } #endif /* __cplusplus */ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_channel_socket.c
costin 01/11/16 14:48:55 Modified:jk/native/common jk_channel_socket.c Log: Working impl. for a socket channel, using cutpaste from jk_connect.c. The code is almost identical. I just changed a bit the if()s, as I'm just a confused java programmer - I'll probably continue to change to java-style if( foo != NULL ) and move the function calls before the if - sorry, but my C is not that good, it takes me some time to read C-style ifs... Revision ChangesPath 1.2 +312 -38 jakarta-tomcat-connectors/jk/native/common/jk_channel_socket.c Index: jk_channel_socket.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_channel_socket.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_channel_socket.c 2001/11/07 21:38:39 1.1 +++ jk_channel_socket.c 2001/11/16 22:48:55 1.2 @@ -56,7 +56,8 @@ * = */ /** - * Channel using 'plain' TCP sockets. Based on jk_sockbuf. + * Channel using 'plain' TCP sockets. Based on jk_sockbuf. Will be replaced by + * an APR-based mechanism. * * Properties: * - host @@ -73,7 +74,29 @@ #include jk_channel.h #include jk_global.h +#include string.h +#ifndef WIN32 + #define closesocket close +#endif + +/** Information specific for the socket channel + */ +struct jk_channel_socket_private { +int ndelay; +struct sockaddr_in addr; +char *host; +short port; +}; + +/** Informations for each connection + */ +typedef struct jk_channel_socket_data { +int sock; +} jk_channel_socket_data_t; + +typedef struct jk_channel_socket_private jk_channel_socket_private_t; + /* We use the _privateInt field directly. Long term we can define our own jk_channel_socket_t structure and use the _private field, etc - but we @@ -84,7 +107,231 @@ int JK_METHOD jk_channel_socket_factory(jk_env_t *env, void **result, char *type, char *name); +static int jk_channel_socket_resolve(char *host, short port, + struct sockaddr_in *rc); + +static int jk_channel_socket_getProperty(jk_channel_t *_this, + char *name, char **value) +{ +return JK_FALSE; +} + +static int jk_channel_socket_setProperty(jk_channel_t *_this, + char *name, char *value) +{ +jk_channel_socket_private_t *socketInfo= + (jk_channel_socket_private_t *)(_this-_privatePtr); + +if( strcmp( host, name ) != 0 ) { + socketInfo-host=value; +} else if( strcmp( defaultPort, name ) != 0 ) { +} else if( strcmp( port, name ) != 0 ) { +} else { + return JK_FALSE; +} +return JK_TRUE; +} + +/** resolve the host IP ( jk_resolve ) and initialize the channel. + */ +static int jk_channel_socket_init(jk_channel_t *_this, + jk_map_t *props, + char *worker_name, + jk_worker_t *worker, + jk_logger_t *l ) +{ +int err=jk_log(l, JK_LOG_DEBUG, Into jk_channel_socket_init\n); +jk_channel_socket_private_t *socketInfo= + (jk_channel_socket_private_t *)(_this-_privatePtr); + +char *host=socketInfo-host; +short port=socketInfo-port; +struct sockaddr_in *rc=socketInfo-addr; + +port = jk_get_worker_port(props, worker_name, port); +host = jk_get_worker_host(props, worker_name, host); + +_this-worker=worker; +_this-logger=l; +_this-properties=props; + +err=jk_channel_socket_resolve( host, port, rc ); +if( err!= JK_TRUE ) { + jk_log(l, JK_LOG_ERROR, jk_channel_socket_init: +can't resolve %s:%d errno=%d\n, host, port, errno ); +} +jk_log(l, JK_LOG_DEBUG, jk_channel_socket_init: ok + %s:%d\n, host, port ); + +return err; +} + +/** private: resolve the address on init + */ +static int jk_channel_socket_resolve(char *host, short port, + struct sockaddr_in *rc) +{ +int x; +u_long laddr; + +rc-sin_port = htons((short)port); +rc-sin_family = AF_INET; + +/* Check if we only have digits in the string */ +for(x = 0 ; '\0' != host[x] ; x++) { +if(!isdigit(host[x]) host[x] != '.') { +break; +} +} +if(host[x] != '\0') { +/* If we found also characters we use gethostbyname()*/ +struct hostent *hoste = gethostbyname(host); +if(!hoste) { +return JK_FALSE; +} + +laddr =
cvs commit: jakarta-tomcat-connectors/jk/native build.xml
costin 01/11/16 14:52:43 Modified:jk/native build.xml Log: Use a separate dir for .obj files ( again, for java people who are used with classes/ style ) Revision ChangesPath 1.16 +9 -3 jakarta-tomcat-connectors/jk/native/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/build.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- build.xml 2001/11/16 21:32:03 1.15 +++ build.xml 2001/11/16 22:52:43 1.16 @@ -37,8 +37,9 @@ /target target name=jni depends=init +mkdir dir=jni/obj / so sofile=jni_connect - buildDir=jni + buildDir=jni/obj optimize=${so.optimize} debug=${so.debug} profile=${so.profile} @@ -100,11 +101,15 @@ /target target name=apache20 depends=init +mkdir dir=apache-2.0/obj / so sofile=mod_jk - buildDir=apache-2.0 + buildDir=apache-2.0/obj optimize=${so.optimize} debug=${so.debug} + taskDebug=0 profile=${so.profile} + def name=_REENTRANT / + def name=CHANNEL / def name=CHUNK_SIZE value=4096 info=Read/Write buffer size / def name=REUSE_WORKER @@ -131,8 +136,9 @@ target name=apache13 depends=init +mkdir dir=apache-1.3/obj / so sofile=mod_jk - buildDir=apache-1.3 + buildDir=apache-1.3/obj optimize=${so.optimize} debug=${so.debug} profile=${so.profile} -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java
patrickl01/11/16 14:53:01 Modified:catalina/src/share/org/apache/catalina/servlets DefaultServlet.java Log: Use the request's URI in error pages instead of just the path with the current context. This behavior was in Tomcat 4.0.1 but was lost recently. This change only restores the old error messages. Revision ChangesPath 1.44 +8 -8 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Index: DefaultServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- DefaultServlet.java 2001/11/16 09:46:53 1.43 +++ DefaultServlet.java 2001/11/16 22:53:01 1.44 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.43 2001/11/16 09:46:53 remm Exp $ - * $Revision: 1.43 $ - * $Date: 2001/11/16 09:46:53 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.44 2001/11/16 22:53:01 patrickl Exp $ + * $Revision: 1.44 $ + * $Date: 2001/11/16 22:53:01 $ * * * @@ -123,7 +123,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.43 $ $Date: 2001/11/16 09:46:53 $ + * @version $Revision: 1.44 $ $Date: 2001/11/16 22:53:01 $ */ public class DefaultServlet @@ -1045,7 +1045,7 @@ if ((path == null) || path.toUpperCase().startsWith(/WEB-INF) || path.toUpperCase().startsWith(/META-INF)) { -response.sendError(HttpServletResponse.SC_NOT_FOUND, path); +response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); return; } @@ -1054,7 +1054,7 @@ ResourceInfo resourceInfo = new ResourceInfo(path, resources); if (!resourceInfo.exists) { -response.sendError(HttpServletResponse.SC_NOT_FOUND, path); +response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); return; } @@ -1062,7 +1062,7 @@ // ends with / or \, return NOT FOUND if (!resourceInfo.collection) { if (path.endsWith(/) || (path.endsWith(\\))) { -response.sendError(HttpServletResponse.SC_NOT_FOUND, path); +response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); return; } } @@ -,7 +,7 @@ // suppress them if (!listings) { response.sendError(HttpServletResponse.SC_NOT_FOUND, - resourceInfo.path); + request.getRequestURI()); return; } contentType = text/html;charset=UTF-8; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/apache-2.0 mod_jk.c
costin 01/11/16 14:55:34 Modified:jk/native/apache-2.0 mod_jk.c Log: A bit more debugging, a bit cleaner ifs, don't try to read workers.properties if none is set up. ( the settings in worker.properties can be done in httpd.conf - it's easier for testing/debugging to edit a single file ) Revision ChangesPath 1.36 +12 -6 jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- mod_jk.c 2001/11/06 00:13:01 1.35 +++ mod_jk.c 2001/11/16 22:55:34 1.36 @@ -60,7 +60,7 @@ * Description: Apache 2 plugin for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * * Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.35 $ * + * Version: $Revision: 1.36 $ * ***/ /* @@ -1181,7 +1181,7 @@ if(strcmp(r-handler,JK_HANDLER))/* not for me, try next handler */ return DECLINED; - + conf = (jk_server_conf_t *)ap_get_module_config(r-server-module_config, jk_module); worker_name = apr_table_get(r-notes, JK_WORKER_ID); @@ -1189,7 +1189,7 @@ /* Set up r-read_chunked flags for chunked encoding, if present */ if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) { -return rc; +return rc; } if( worker_name == NULL ) { @@ -1204,7 +1204,7 @@ explicitely give control to us. */ worker_name= worker_env.first_worker; jk_log(xl, JK_LOG_DEBUG, - Manual configuration for %s %s %d\n, + Manual configuration for %s (%s) %d\n, r-uri, worker_env.first_worker, worker_env.num_of_workers); } else { worker_name = map_uri_to_worker(conf-uw_map, r-uri, xl); @@ -1273,6 +1273,7 @@ apr_pool_t *tpool= apr_pool_get_parent( parent_pool ); apr_pool_userdata_get( end, jk_thread_endpoint, tpool ); +jk_log(xl, JK_LOG_DEBUG, Using per-thread worker %lx\n , end ); if(end==NULL ) { worker-get_endpoint(worker, end, xl); apr_pool_userdata_set( end , jk_thread_endpoint, @@ -1478,7 +1479,6 @@ stuff ) */ static void init_jk( apr_pool_t *pconf, jk_server_conf_t *conf, server_rec *s ) { -/* jk_map_t *init_map = NULL; */ jk_map_t *init_map = conf-worker_properties; if(conf-log_file conf-log_level = 0) { @@ -1496,7 +1496,11 @@ } /* if(map_alloc(init_map)) { */ -if( ! map_read_properties(init_map, conf-worker_file)) { +jk_log(conf-log, JK_LOG_DEBUG, + Reading map %s %d\n, conf-worker_file, map_size( init_map ) ); + +if( (conf-worker_file != NULL ) +! map_read_properties(init_map, conf-worker_file)) { if( map_size( init_map ) == 0 ) { jk_error_exit(APLOG_MARK, APLOG_EMERG, s, pconf, No worker file and no worker options in httpd.conf \n @@ -1504,6 +1508,8 @@ return; } } +jk_log(conf-log, JK_LOG_DEBUG, + Read map %s %d\n, conf-worker_file, map_size( init_map ) ); /* we add the URI-WORKER MAP since workers using AJP14 will feed it */ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_worker.c jk_registry.c jk_ajp14_worker.c jk_ajp13_worker.c
costin 01/11/16 14:59:06 Modified:jk/native/common jk_worker.c jk_registry.c jk_ajp14_worker.c jk_ajp13_worker.c Log: Minor changes ( remove unused imports, add socket channel to the registry ) Revision ChangesPath 1.9 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_worker.c Index: jk_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_worker.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_worker.c 2001/11/05 23:22:05 1.8 +++ jk_worker.c 2001/11/16 22:59:06 1.9 @@ -60,7 +60,7 @@ * Description: Workers controller * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.8 $ * + * Version: $Revision: 1.9 $ * ***/ /* #define _PLACE_WORKER_LIST_HERE */ @@ -113,7 +113,7 @@ we-num_of_workers=num_of_workers; we-first_worker=worker_list[0]; -jk_log(l, JK_LOG_DEBUG, wc_open, done %d\n, num_of_workers); +jk_log(l, JK_LOG_DEBUG, wc_open, done %d %s\n, num_of_workers, worker_list[0]); return JK_TRUE; } 1.5 +11 -1 jakarta-tomcat-connectors/jk/native/common/jk_registry.c Index: jk_registry.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_registry.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- jk_registry.c 2001/11/11 01:17:43 1.4 +++ jk_registry.c 2001/11/16 22:59:06 1.5 @@ -62,7 +62,7 @@ /*** * Description: Worker list* - * Version: $Revision: 1.4 $ * + * Version: $Revision: 1.5 $ * ***/ /** Static declarations for all 'hardcoded' modules. This is a hack, @@ -102,6 +102,13 @@ jk_logger_t *l); #endif +/* Factories for 'new' types. We use the new factory interface, + * workers will be updated later + */ +int JK_METHOD jk_channel_socket_factory(jk_env_t *env, void **result, + char *type, char *name); + + /** * Init the components that we compile in by default. * In future we should have a more flexible mechanism that would allow @@ -122,6 +129,9 @@ #ifdef HAVE_JNI env-registerFactory( env, worker, jni, (void *)jni_worker_factory ); #endif + + env-registerFactory( env, channel, socket, + (void *)jk_channel_socket_factory ); /* env-registerFactory( env, channel, socket, jk_channel_socket_factory ); 1.13 +1 -2 jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.c Index: jk_ajp14_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- jk_ajp14_worker.c 2001/11/07 21:50:53 1.12 +++ jk_ajp14_worker.c 2001/11/16 22:59:06 1.13 @@ -58,12 +58,11 @@ /*** * Description: AJP14 next generation Bi-directional protocol. * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.12 $ * + * Version: $Revision: 1.13 $ * ***/ #include jk_context.h #include jk_pool.h -#include jk_connect.h #include jk_util.h #include jk_msg_buff.h #include jk_ajp13.h 1.8 +1 -2 jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.c Index: jk_ajp13_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- jk_ajp13_worker.c 2001/11/07 21:50:53 1.7 +++ jk_ajp13_worker.c 2001/11/16 22:59:06 1.8 @@ -60,11 +60,10 @@ * Author: Costin [EMAIL PROTECTED] * * Author: Gal
Re: Performance of tomcat 3.2.3
Also: http://www.webperformanceinc.com/ Great program and very easy to set up fairly complex tests. I only wish it was open source! :( (they do have a free trial period, though) Thanks, --jeff - Original Message - From: Ryan Lubke [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED] Sent: Friday, November 16, 2001 9:46 AM Subject: Re: Performance of tomcat 3.2.3 http://jakarta.apache.org/jmeter/index.html On Fri, 2001-11-16 at 12:16, Michael Jennings wrote: Hi everyone, I'm working on a project for a client that involves a servlet engine component. I suggested tomcat since I am most familiar with it and it seems the most compliant servlet engine around. My client has mentioned concerns about tomcat's performance and now is insisting on using IBM websphere 4.0 My suspicion is that tomcat's performance will be fine for this application, but I would like to have some hard numbers to back up my claim. Does anyone know of any kind of tool or code out there that can measure http and https performance? Thanks in advance. -Mike Jennings -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native build.xml
On 16 Nov 2001 [EMAIL PROTECTED] wrote: Modified:jk/native build.xml Log: Added alternate targets (since NLM names are limited to 8.3). What about using 8.3 names in the first place ? jk_jni jk_nsapi jk_isapi mod_jk Costin !-- Platform-specific tags -- + altSoFile value=jni_conn if=netware / + def name=N_PLAT_NLM if=netware info=Building for NetWare platform / def name=NETWARE if=netware @@ -272,6 +274,7 @@ include name=${java.home}/../include / !-- Platform specific includes -- + include name=${novellndk.dir}/include/nlm if=netware / include name=${novellndk.dir}/include if=netware / include name=${java.home}/../include/netware if=netware / @@ -285,6 +288,8 @@ /depends !-- Platform-specific tags -- + altSoFile value=nsapi_rd if=netware / + def name=N_PLAT_NLM if=netware info=Building for NetWare platform / def name=NETWARE if=netware -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Tomcat 4.0 on IIS
On Fri, 16 Nov 2001, Rajan Gupta wrote: Date: Fri, 16 Nov 2001 13:49:56 -0800 (PST) From: Rajan Gupta [EMAIL PROTECTED] Reply-To: Tomcat Developers List [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED], EKR [EMAIL PROTECTED] Subject: Tomcat 4.0 on IIS I managed to run Tomcat 4.0 with IIS using the ISAPI module provided for Tomcat 3.3 for AJPV13. I had to use the workers.properties uriworkers.properties to make it work from Tomcat 3.3. If the Tomcat Developer Community does not know of any known issue with using Tomcat 3.3 ISAPI Module for Tomcat 4.0, I will be happy to provide an Installation Guide sample files to be put as a part of Tomcat 4.0. That would be quite useful. I say this because I have seen repeated request by Tomcat 4.0 Users for IIS support. Craig, can u take a minute to advise. The best way to integrate documentation into the Tomcat 4 bundle would be to write them using the XML formats used for all the other docs -- they are in webapps/tomcat-docs in the source repository. Second best would be to provide raw text (or HTML) versions of the docs that someone else could convert into the same style. To actually propose the new docs, you would send them as an attachment to the Tomca-Dev list, in accordance with the guidelines on the Jakarta web site, starting at: http://jakarta.apache.org/site/getinvolved.html Thanks, Rajan Gupta Craig -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
[PATCH] Status-Code not set for Error pages when Exception is thrown
Hi, Say a user has a custom error page for status codes of 500 when an uncaught exception occurs. The request parameter, javax.servlet.error.status_code, is not set, so if the error page tries to access this req. parameter, null will be returned. Attached is a patch that I've tested in my env and seems to do the trick. -rl Index: ErrorDispatcherValve.java === RCS file: /home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/ErrorDispatcherValve.java,v retrieving revision 1.6 diff -u -r1.6 ErrorDispatcherValve.java --- ErrorDispatcherValve.java 2001/11/13 00:42:24 1.6 +++ ErrorDispatcherValve.java 2001/11/16 23:56:55 @@ -229,6 +229,8 @@ response.setAppCommitted(false); ServletRequest sreq = request.getRequest(); ServletResponse sresp = response.getResponse(); +sreq.setAttribute(Globals.STATUS_CODE_ATTR, + new +Integer(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); sreq.setAttribute(Globals.ERROR_MESSAGE_ATTR, throwable.getMessage()); sreq.setAttribute(Globals.EXCEPTION_ATTR, -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
[FAQ] jGuru FAQ Update
jGuru maintains FAQs and Forums on Servlets, JSP, and Tomcat (as well as many other Java topics). Here is an automated update on recent postings to Tomcat-related FAQs. Please direct flames and feedback to [EMAIL PROTECTED] . - Alex SPONSORED BY developerWorks need it? get it. tools, code and tutorials for open-standards based development. Stay informed with dW's weekly email newsletter http://www.jguru.com/misc/register_devworks.jsp?src=notify - Hi. You asked to be notified weekly when certain jGuru.com items get new entries. You can shut email notification off at the FAQ home page(s) or: http://www.jguru.com/guru/notifyprefs.jsp ++ Servlets FAQ: http://www.jguru.com/faq/Servlets Is there any way to change/set owner of a file that is uploaded, before it's saved to the filesystem? http://www.jguru.com/misc/faqtrampoline.jsp?src=notifyEID=543979 ++ Tomcat FAQ: http://www.jguru.com/faq/Tomcat Is commercial support available for Tomcat? My company is interested in purchasing technical support (24x7) for Tomcat (on Solaris). Does anybody know of any organisation able to offer a support service? (please post reply here and also email to me [EMAIL PROTECTED]) http://www.jguru.com/misc/faqtrampoline.jsp?src=notifyEID=544502 Tomcat and WebDav Security p I am attempting to configure Tomcat's WebDav application (http://localhost:8080/webdav) to allow everyone to view the directory. However I need authorized users to be able to edit the content of the directory. p http://www.jguru.com/misc/faqtrampoline.jsp?src=notifyEID=544213 -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
TC 3.3, Production Quality
I've noticed that on the main TC page of Jakarta site, TC 3.2.x is still listed as production quality release, although we all know that 3.3 is far superior in almost any respect. That's for Servlet API 2.2 and JSP 1.1, of course. Any objections if I change this? Bojan -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: TC 3.3, Production Quality
No objection here. - Original Message - From: Bojan Smojver [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, November 16, 2001 6:44 PM Subject: TC 3.3, Production Quality I've noticed that on the main TC page of Jakarta site, TC 3.2.x is still listed as production quality release, although we all know that 3.3 is far superior in almost any respect. That's for Servlet API 2.2 and JSP 1.1, of course. Any objections if I change this? Bojan -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[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: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 01/11/16 22:08:20 Modified:jk/native/common jk_ajp_common.c Log: The big commit - plugin in the new socket code. All is #ifdef-ed by now - the old code is compiled by default, unmodified ( except some ifs that I reversed to be able to read and minor indentations). Probably this will remain this way until we are comfortable with the new abstraction - then we can remove the old code and the ifdefs. So far I can run it without problems. One big issue is the code that recycles the connection - I'm very comfused, it seems that besides recycling the endpoint we have some code that is doing some tricks with the sockets. From the comments it seems to be dealing with lb - but the lb worker has it's own mechanism to get another endpoint if one fails. I've also got a core on high load ( but very hard to reproduce ) and it happens in the reuse_connection - I added a check, but not sure why the worker would be null in the endpoint. What's more important is finding if we need this extra attempt to reuse ( or recover from endpoint errors ), closing the socket and reopening again could be a better solution ( if tomcat was restarted, all sockets will be invalid, so reuse_connection couldn't help in any way ). Revision ChangesPath 1.19 +328 -210 jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c Index: jk_ajp_common.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- jk_ajp_common.c 2001/11/06 00:15:07 1.18 +++ jk_ajp_common.c 2001/11/17 06:08:20 1.19 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.18 $ * + * Version: $Revision: 1.19 $ * ***/ @@ -69,6 +69,8 @@ #include jk_ajp14.h #include jk_ajp_common.h #include jk_connect.h +#include jk_channel.h +#include jk_env.h const char *response_trans_headers[] = { @@ -524,30 +526,38 @@ void ajp_close_endpoint(ajp_endpoint_t *ae, jk_logger_t*l) { - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); +jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); ajp_reset_endpoint(ae); jk_close_pool((ae-pool)); +#ifdef CHANNEL +{ + jk_channel_t *channel=ae-worker-worker.channel; + int err=channel-close( channel, ae-endpoint ); +} +#else if (ae-sd 0) { -jk_close_socket(ae-sd); - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); - ae-sd = -1; /* just to avoid twice close */ - } + jk_close_socket(ae-sd); + jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); + ae-sd = -1; /* just to avoid twice close */ +} +#endif free(ae); } - +#ifndef CHANNEL /* * Try to reuse a previous connection */ - static void ajp_reuse_connection(ajp_endpoint_t *ae, jk_logger_t*l) { ajp_worker_t *aw = ae-worker; - + +if (aw==NULL ) +return; if (aw-ep_cache_sz) { int rc; JK_ENTER_CS(aw-cs, rc); @@ -567,6 +577,7 @@ } } } +#endif int ajp_connect_to_endpoint(ajp_endpoint_t *ae, @@ -575,20 +586,26 @@ unsigned attempt; for(attempt = 0 ; attempt ae-worker-connect_retry_attempts ; attempt++) { +#ifdef CHANNEL + jk_channel_t *channel=ae-worker-worker.channel; +int err=channel-open( channel, ae-endpoint ); + jk_log(l, JK_LOG_DEBUG, ajp_connect_to_endpoint: connected %lx\n, ae-endpoint ); + if( err == JK_TRUE ) { +#else ae-sd = jk_open_socket(ae-worker-worker_inet_addr, JK_TRUE, l); if(ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_connect_to_endpoint, connected sd = %d\n, ae-sd); - - /* Check if we must execute a logon after the physical connect */ - if (ae-worker-logon != NULL) - return (ae-worker-logon(ae, l)); - - return JK_TRUE; +#endif + /* Check if we must execute a logon after the physical connect */ + if (ae-worker-logon != NULL) + return (ae-worker-logon(ae, l)); + + return JK_TRUE;
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_jni_worker.c jk_lb_worker.c jk_msg_buff.c
costin 01/11/16 22:00:24 Modified:jk/native build.xml jk/native/common jk_jni_worker.c jk_lb_worker.c jk_msg_buff.c Log: Few fixes for the previous commits. Revision ChangesPath 1.17 +2 -1 jakarta-tomcat-connectors/jk/native/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/build.xml,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- build.xml 2001/11/16 22:52:43 1.16 +++ build.xml 2001/11/17 06:00:24 1.17 @@ -109,7 +109,8 @@ taskDebug=0 profile=${so.profile} def name=_REENTRANT / - def name=CHANNEL / + def name=CHANNEL + if=use.channel/ def name=CHUNK_SIZE value=4096 info=Read/Write buffer size / def name=REUSE_WORKER 1.6 +3 -2 jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c Index: jk_jni_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_jni_worker.c 2001/11/07 21:50:53 1.5 +++ jk_jni_worker.c 2001/11/17 06:00:24 1.6 @@ -59,7 +59,7 @@ * Description: In process JNI worker * * Author: Gal Shachor [EMAIL PROTECTED] * * Based on: * - * Version: $Revision: 1.5 $ * + * Version: $Revision: 1.6 $ * ***/ #if !defined(WIN32) !defined(NETWARE) @@ -557,12 +557,13 @@ } if(p) { -p-attached = JK_FALSE; + p-attached = JK_FALSE; p-env = NULL; p-worker = pThis-worker_private; p-endpoint.endpoint_private = p; p-endpoint.service = service; p-endpoint.done = done; + p-endpoint.channelData = NULL; *pend = p-endpoint; return JK_TRUE; 1.6 +2 -1 jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c Index: jk_lb_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_lb_worker.c2001/11/07 21:50:53 1.5 +++ jk_lb_worker.c2001/11/17 06:00:24 1.6 @@ -60,7 +60,7 @@ * several workers. * * Author: Gal Shachor [EMAIL PROTECTED] * * Based on: * - * Version: $Revision: 1.5 $ * + * Version: $Revision: 1.6 $ * ***/ #include jk_pool.h @@ -496,6 +496,7 @@ p-endpoint.endpoint_private = p; p-endpoint.service = service; p-endpoint.done = done; + p-endpoint.channelData = NULL; *pend = p-endpoint; return JK_TRUE; 1.9 +1 -2 jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c Index: jk_msg_buff.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_msg_buff.c 2001/11/07 21:40:59 1.8 +++ jk_msg_buff.c 2001/11/17 06:00:24 1.9 @@ -60,11 +60,10 @@ * Author: Costin [EMAIL PROTECTED] * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.8 $ * + * Version: $Revision: 1.9 $ * ***/ #include jk_pool.h -#include jk_connect.h #include jk_util.h #include jk_msg_buff.h #include jk_logger.h -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat RELEASE-NOTES-3.3.1.txt
billbarker01/11/16 22:34:08 Modified:.RELEASE-NOTES-3.3.1.txt Log: Update to include change to o.a.t.facade.HttpServletResponseFacade. Revision ChangesPath 1.3 +3 -1 jakarta-tomcat/RELEASE-NOTES-3.3.1.txt Index: RELEASE-NOTES-3.3.1.txt === RCS file: /home/cvs/jakarta-tomcat/RELEASE-NOTES-3.3.1.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- RELEASE-NOTES-3.3.1.txt 2001/11/14 03:02:24 1.2 +++ RELEASE-NOTES-3.3.1.txt 2001/11/17 06:34:08 1.3 @@ -3,7 +3,7 @@ Release Notes = -$Id: RELEASE-NOTES-3.3.1.txt,v 1.2 2001/11/14 03:02:24 larryi Exp $ +$Id: RELEASE-NOTES-3.3.1.txt,v 1.3 2001/11/17 06:34:08 billbarker Exp $ This document describes the changes that have been made since the @@ -32,6 +32,8 @@ if you have Apache forwarding SSL requests to a Tomcat that doesn't have JSSE installed. + Fixed logic for response.encodeURL() so that it will work correctly + if the input URL includes an anchor tag. Server: -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
salon.com uses Tomcat + Cocoon for some experimental services
Take a look at this article: http://www.webtechniques.com/archives/2001/12/rosenberg/ From that article: We also have experimental services running under the Apache Project's Cocoon and Tomcat application servers that render Salon's content in XML, applying XSLT and XSP for form and functional purposes respectively. In the short term, this provides us with additional flexibility in working with content distribution and syndication partners. It also poises us for a future evolutionary transition to a dynamic, XML-based, content delivery model. Have fun, Paulo Gaspar http://www.krankikom.de http://www.ruhronline.de -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
[PATCH] [Catalina] StandardContext::addParameter() JavaDoc
addParameter() instance method actually throws an IllegalArgumentException if a duplicate name is used. I came across this while attempting to setup Catalina behind Apache + mod_webapp -- AFAICT, my setup is currently giving me the joy of multiple initializations of Catalina. Index: StandardContext.java === RCS file: /home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.87 diff -u -u -r1.87 StandardContext.java --- StandardContext.java2001/11/10 00:01:54 1.87 +++ StandardContext.java2001/11/17 02:18:47 @@ -1506,8 +1506,7 @@ /** - * Add a new context initialization parameter, replacing any existing - * value for the specified name. + * Add a new context initialization parameter. * * @param name Name of the new parameter * @param value Value of the new parameter -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]