This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat-connectors.git
The following commit(s) were added to refs/heads/main by this push: new b29b2b8 Remove references to iPlanet as the product has been discontinued b29b2b8 is described below commit b29b2b8c46cf536f613a2111c15a6443a29d29e8 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Feb 24 16:46:29 2022 +0000 Remove references to iPlanet as the product has been discontinued --- HOWTO-RELEASE.txt | 1 - build.properties.autoconf | 9 +- native/BUILDING.txt | 18 -- native/README.txt | 7 +- native/configure.ac | 15 - native/netscape/Makefile.linux | 55 ---- native/netscape/Makefile.solaris | 93 ------ native/netscape/Makefile.vc | 279 ------------------ native/netscape/README | 31 -- native/netscape/jk_nsapi_plugin.c | 576 -------------------------------------- native/netscape/nsapi.dsp | 275 ------------------ tools/jkbindist.sh | 3 - xdocs/ajp/project.xml | 1 - xdocs/common_howto/project.xml | 1 - xdocs/common_howto/proxy.xml | 7 +- xdocs/common_howto/quick.xml | 12 +- xdocs/common_howto/timeouts.xml | 5 +- xdocs/index.xml | 5 - xdocs/jk2/installhowto.xml | 4 +- xdocs/miscellaneous/changelog.xml | 4 + xdocs/miscellaneous/faq.xml | 9 - xdocs/miscellaneous/project.xml | 1 - xdocs/news/project.xml | 1 - xdocs/project.xml | 1 - xdocs/reference/project.xml | 1 - xdocs/reference/workers.xml | 11 +- xdocs/webserver_howto/nes.xml | 503 --------------------------------- xdocs/webserver_howto/project.xml | 1 - 28 files changed, 23 insertions(+), 1906 deletions(-) diff --git a/HOWTO-RELEASE.txt b/HOWTO-RELEASE.txt index e051936..e691a93 100644 --- a/HOWTO-RELEASE.txt +++ b/HOWTO-RELEASE.txt @@ -44,7 +44,6 @@ and replace it with the new version. These are the docs I found which had to be updated: native/iis/README -native/netscape/README xdocs/build.xml xdocs/index.xml xdocs/news/<THISYEAR0101>.xml diff --git a/build.properties.autoconf b/build.properties.autoconf index 6c4588e..92697eb 100644 --- a/build.properties.autoconf +++ b/build.properties.autoconf @@ -37,11 +37,10 @@ tomcat41.home=@TOMCAT41_HOME@ # Directory where tomcat3.3 is installed tomcat33.home=@TOMCAT33_HOME@ -# Location of Apache2, Apache1.3, IIS and Netscape (iPlanet) +# Location of Apache2, Apache1.3 and IIS apache2.home=@APACHE2_HOME@ apache13.home=@APACHE_HOME@ iis.home=@IIS_HOME@ -iplanet.home=@IPLANET_HOME@ # APR location - by default the version included in Apache2 is used. @@ -60,20 +59,18 @@ apxs=@APXS@ apxs2=@APXS2@ -# Location of Apache2, Apache1.3, IIS and Netscape (iPlanet) +# Location of Apache2, Apache1.3 and IIS # includes directory apache2.include=@APACHE2_INCDIR@ apache13.include=@APACHE_INCDIR@ iis.include=@IIS_INCDIR@ -iplanet.include=@IPLANET_INCDIR@ -# Location of Apache2, Apache1.3, IIS and Netscape (iPlanet) +# Location of Apache2, Apache1.3 and IIS # lib directory apache2.lib=@APACHE2_LIBDIR@ apache13.lib=@APACHE_LIBDIR@ iis.lib=@IIS_LIBDIR@ -iplanet.lib=@IPLANET_LIBDIR@ # Compile-time options for native code diff --git a/native/BUILDING.txt b/native/BUILDING.txt index e25e257..c8c79e5 100644 --- a/native/BUILDING.txt +++ b/native/BUILDING.txt @@ -75,24 +75,6 @@ using DSO/APXS. - Building for Netscape/iPlanet/SunONE WebServer - ============================================== - - Building uses the following command sequence: - - ./configure --enable-netscape - cd netscape - make -f Makefile.solaris - - This assumes that IPLANET_HOME is defined and points to - your iPlanet install path (eg: /opt/SUNWwbsvr). - - By default GCC will be used. You can use Sun CC by providing - CC=cc on the make command line: - - make -f Makefile.solaris CC=cc IPLANET_HOME=/opt/SUNWwbsrv70 EXTRA_CFLAGS=-m64 - - Misc Notes ========== diff --git a/native/README.txt b/native/README.txt index e4f5531..bec8ecc 100644 --- a/native/README.txt +++ b/native/README.txt @@ -21,10 +21,9 @@ What is tomcat-connector? tomcat-connectors is a project that provides web server connectors for the Tomcat servlet engine. The supported web servers are the -Apache HTTP Server 2.x, Microsoft IIS and the Netscape/IPlanet -web server. The AJP protocol used by the connector is supported in -all Tomcat versions starting with Tomcat 3.2. Some other back end servers -also support the AJP protocol. +Apache HTTP Server 2.x and Microsoft IIS. The AJP protocol used by the connector +is supported in all Tomcat versions starting with Tomcat 3.2. Some other back +end servers also support the AJP protocol. Main features of the tomcat-connectors are fault tolerance, load balancing, dynamic configuration, flexibility and robustness. diff --git a/native/configure.ac b/native/configure.ac index 14e88bb..747befe 100644 --- a/native/configure.ac +++ b/native/configure.ac @@ -540,21 +540,6 @@ AC_SUBST(apache_include) APACHE_DIR=${apache_dir} AC_SUBST(APACHE_DIR) -AC_ARG_ENABLE(netscape, -[AS_HELP_STRING([--enable-netscape=DIR],[Build Netscape/iPlanet/SunONE nsapi redirector plugin])], -[ - if ${TEST} ! -z "$WEBSERVER" ; then - AC_MSG_ERROR([Sorry cannot use --with-apxs=${APXS} or --with-apache=${withval} with --with-netscape, please choose one or the other.]) - fi - - WEBSERVER="netscape" - - AC_MSG_RESULT([building connector for \"$WEBSERVER\"]) -], -[ - AC_MSG_RESULT(no netscape given) -]) - dnl CFLAGS for EAPI mod_ssl (Apache 1.3) dnl it also allows the CFLAGS environment variable. CFLAGS="${CFLAGS}" diff --git a/native/netscape/Makefile.linux b/native/netscape/Makefile.linux deleted file mode 100644 index 1f521da..0000000 --- a/native/netscape/Makefile.linux +++ /dev/null @@ -1,55 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Defines for example NSAPI programs running under Linux - -# gcc -# If you get relocation errors, try: -# 1. compiling with Sun's cc -# 2. statically linking with libgcc -# 3. Adjusting LD_LIBRARY_PATH to grab libgcc_s -CC=gcc -# For 64 Bit builds, add "-m64" to EXTRA_CFLAGS -EXTRA_CFLAGS=-fPIC -pthread -LDFLAGS=-shared - -CC_CMD=$(CC) $(CFLAGS) $(EXTRA_CFLAGS) \ - -DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX -DMCC_HTTPD -DSPAPI20 -DJK_NSAPI - -LD_SHAREDCMD=$(CC) $(LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) - -OS_TYPE=linux -INCLUDEDIR=$(IPLANET_HOME)/include -JK_DIR=../common -VPATH=.:$(JK_DIR) - -JK_SRCS = $(shell \ls $(JK_DIR)/*.c) -JK_OBJECTS = $(patsubst $(JK_DIR)/%.c,%.o,$(JK_SRCS)) -PLUGIN_OBJ = jk_nsapi_plugin.o - -INCLUDE_FLAGS= -I$(JK_DIR) -I$(INCLUDEDIR) -I$(INCLUDEDIR)/base \ - -I$(INCLUDEDIR)/frame - -all: nsapi_redirector.so - - -nsapi_redirector.so: $(JK_OBJECTS) $(PLUGIN_OBJ) - $(LD_SHAREDCMD) $(JK_OBJECTS) $(PLUGIN_OBJ) -o nsapi_redirector.so $(EXTRA_LDDEFINES) - -clean: - rm -f *.o nsapi_redirector.so $(JK_OBJECTS) - -%.o : %.c - $(CC_CMD) $(INCLUDE_FLAGS) -c $< diff --git a/native/netscape/Makefile.solaris b/native/netscape/Makefile.solaris deleted file mode 100644 index ea80e18..0000000 --- a/native/netscape/Makefile.solaris +++ /dev/null @@ -1,93 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Defines for example NSAPI programs running under SOLARIS - -# Choose between the settings for gcc or Sun Studio compiler - -# gcc -# If you get relocation errors, try: -# 1. compiling with Sun's cc -# 2. statically linking with libgcc -# 3. Adjusting LD_LIBRARY_PATH to grab libgcc_s -CC=gcc -ifeq (gcc,$(CC)) -# For 64 Bit builds, add "-m64" to EXTRA_CFLAGS -CFLAGS+=-fPIC -pthread -LDFLAGS=-shared -else -# For 64 Bit builds, add "-m64" to EXTRA_CFLAGS -CFLAGS+=-O -Xa -KPIC -mt -LDFLAGS=-G -dy -endif - -# Change this according to location where on installed the server. -# Don't forget to do the ./configure --enable-netscape=/opt/SUNWwbsvr/plugins -# before doing gmake -f Makefile.solaris - -CC_CMD=$(CC) $(CFLAGS) $(EXTRA_CFLAGS) \ - -DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX -DMCC_HTTPD -DSPAPI20 -DJK_NSAPI -DHAVE_CONFIG_H - -LD_SHAREDCMD=$(CC) $(LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) - -all: - -prepare: - -OS_TYPE=solaris -INCLUDEDIR=$(IPLANET_HOME)/include -JK_DIR=../common -VPATH=.:$(JK_DIR) - -JK_OBJS = ap_snprintf.o \ - jk_md5.o \ - jk_ajp12_worker.o \ - jk_msg_buff.o \ - jk_ajp13.o \ - jk_ajp13_worker.o \ - jk_pool.o \ - jk_ajp14.o \ - jk_shm.o \ - jk_ajp14_worker.o \ - jk_sockbuf.o \ - jk_ajp_common.o \ - jk_status.o \ - jk_connect.o \ - jk_uri_worker_map.o \ - jk_context.o \ - jk_url.o \ - jk_util.o \ - jk_lb_worker.o \ - jk_worker.o \ - jk_map.o - - -PLUGIN_OBJ = jk_nsapi_plugin.o - -INCLUDE_FLAGS= -I$(JK_DIR) -I$(INCLUDEDIR) -I$(INCLUDEDIR)/base \ - -I$(INCLUDEDIR)/frame - -all: nsapi_redirector.so - - -nsapi_redirector.so: $(JK_OBJS) $(PLUGIN_OBJ) - $(LD_SHAREDCMD) $(JK_OBJS) $(PLUGIN_OBJ) -o nsapi_redirector.so $(EXTRA_LDDEFINES) - -clean: - rm -f *.o nsapi_redirector.so $(JK_OBJS) - rm -f $(JK_DIR)/*.o - -%.o : %.c - $(CC_CMD) $(INCLUDE_FLAGS) -c $< diff --git a/native/netscape/Makefile.vc b/native/netscape/Makefile.vc deleted file mode 100644 index bd6bc61..0000000 --- a/native/netscape/Makefile.vc +++ /dev/null @@ -1,279 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Based on nsapi.dsp -!IF "$(CFG)" == "" -CFG=nsapi - Win32 Release -!MESSAGE No configuration specified. Defaulting to nsapi - Win32 Release. -!ENDIF - -!IF "$(CFG)" != "nsapi - Win32 Release" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "nsapi.mak" CFG="nsapi - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "nsapi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF - -TARGET=nsapi_redirect$(SO_VERSION) - -OUTDIR=.\nsapi_release -INTDIR=.\nsapi_release -# Begin Custom Macros -OutDir=.\nsapi_release -# End Custom Macros - -ALL : "$(OUTDIR)\$(TARGET).dll" - - -CLEAN : - -@erase "$(INTDIR)\jk_ajp12_worker.obj" - -@erase "$(INTDIR)\jk_ajp13.obj" - -@erase "$(INTDIR)\jk_ajp13_worker.obj" - -@erase "$(INTDIR)\jk_ajp14.obj" - -@erase "$(INTDIR)\jk_ajp14_worker.obj" - -@erase "$(INTDIR)\jk_ajp_common.obj" - -@erase "$(INTDIR)\jk_connect.obj" - -@erase "$(INTDIR)\jk_context.obj" - -@erase "$(INTDIR)\jk_lb_worker.obj" - -@erase "$(INTDIR)\jk_map.obj" - -@erase "$(INTDIR)\jk_md5.obj" - -@erase "$(INTDIR)\jk_msg_buff.obj" - -@erase "$(INTDIR)\jk_nsapi_plugin.obj" - -@erase "$(INTDIR)\jk_pool.obj" - -@erase "$(INTDIR)\jk_shm.obj" - -@erase "$(INTDIR)\jk_sockbuf.obj" - -@erase "$(INTDIR)\jk_status.obj" - -@erase "$(INTDIR)\jk_uri_worker_map.obj" - -@erase "$(INTDIR)\jk_url.obj" - -@erase "$(INTDIR)\jk_util.obj" - -@erase "$(INTDIR)\jk_worker.obj" - -@erase "$(OUTDIR)\$(TARGET).dll" - -@erase "$(OUTDIR)\nsapi_redirect.exp" - -@erase "$(OUTDIR)\nsapi_redirect.lib" - -@erase "$(OUTDIR)\$(TARGET).pdb" - -@erase "$(OUTDIR)\nsapi_redirect_src.idb" - -@erase "$(OUTDIR)\\nsapi_redirect_src.pdb" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=-nologo -MD -W3 -O2 -Ob2 -Oy- -Zi -EHsc /I "..\common" /I "$(IPLANET_HOME)\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JK_NSAPI" /D "NSAPI_EXPORTS" /D "XP_WIN32" /D "MCC_HTTPD" /D "SPAPI20" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\nsapi_redirect_src" /FD /c - -.c{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.c{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -MTL=midl.exe -MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 -RSC=rc.exe -RSC_PROJ=/l 0x409 /fo"$(INTDIR)\jk.res" /i "..\common" /d "JK_NSAPI" /d "NDEBUG" -BSC32=bscmake.exe -BSC32_FLAGS=/nologo /o"$(OUTDIR)\nsapi.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -LINK32_FLAGS=ns-httpd40.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib $(EXTRA_LIBS) /nologo /base:"0x6A6B0000" /dll /incremental:no /pdb:"$(OUTDIR)\$(TARGET).pdb" /debug /machine:I386 /out:"$(OUTDIR)\$(TARGET).dll" /implib:"$(OUTDIR)\nsapi_redirect.lib" /libpath:"$(IPLANET_HOME)\lib" -LINK32_OBJS= \ - "$(INTDIR)\jk_ajp12_worker.obj" \ - "$(INTDIR)\jk_ajp13.obj" \ - "$(INTDIR)\jk_ajp13_worker.obj" \ - "$(INTDIR)\jk_ajp14.obj" \ - "$(INTDIR)\jk_ajp14_worker.obj" \ - "$(INTDIR)\jk_ajp_common.obj" \ - "$(INTDIR)\jk_connect.obj" \ - "$(INTDIR)\jk_context.obj" \ - "$(INTDIR)\jk_lb_worker.obj" \ - "$(INTDIR)\jk_map.obj" \ - "$(INTDIR)\jk_md5.obj" \ - "$(INTDIR)\jk_msg_buff.obj" \ - "$(INTDIR)\jk_nsapi_plugin.obj" \ - "$(INTDIR)\jk_pool.obj" \ - "$(INTDIR)\jk_shm.obj" \ - "$(INTDIR)\jk_sockbuf.obj" \ - "$(INTDIR)\jk_status.obj" \ - "$(INTDIR)\jk_uri_worker_map.obj" \ - "$(INTDIR)\jk_url.obj" \ - "$(INTDIR)\jk_util.obj" \ - "$(INTDIR)\jk.res" \ - "$(INTDIR)\jk_worker.obj" - -"$(OUTDIR)\$(TARGET).dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - IF EXIST $(OUTDIR)\$(TARGET).manifest \ - mt -nologo -manifest $(OUTDIR)\$(TARGET).manifest -outputresource:$(OUTDIR)\$(TARGET).dll;2 - - -!IF "$(CFG)" == "nsapi - Win32 Release" -SOURCE=..\common\jk.rc - -"$(INTDIR)\jk.res" : $(SOURCE) "$(INTDIR)" - $(RSC) $(RSC_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp12_worker.c - -"$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp13.c - -"$(INTDIR)\jk_ajp13.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp13_worker.c - -"$(INTDIR)\jk_ajp13_worker.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp14.c - -"$(INTDIR)\jk_ajp14.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp14_worker.c - -"$(INTDIR)\jk_ajp14_worker.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_ajp_common.c - -"$(INTDIR)\jk_ajp_common.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_connect.c - -"$(INTDIR)\jk_connect.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_context.c - -"$(INTDIR)\jk_context.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_lb_worker.c - -"$(INTDIR)\jk_lb_worker.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_map.c - -"$(INTDIR)\jk_map.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_md5.c - -"$(INTDIR)\jk_md5.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_msg_buff.c - -"$(INTDIR)\jk_msg_buff.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\jk_nsapi_plugin.c - -"$(INTDIR)\jk_nsapi_plugin.obj" : $(SOURCE) "$(INTDIR)" - - -SOURCE=..\common\jk_pool.c - -"$(INTDIR)\jk_pool.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_shm.c - -"$(INTDIR)\jk_shm.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_sockbuf.c - -"$(INTDIR)\jk_sockbuf.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_status.c - -"$(INTDIR)\jk_status.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_uri_worker_map.c - -"$(INTDIR)\jk_uri_worker_map.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_url.c - -"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_util.c - -"$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=..\common\jk_worker.c - -"$(INTDIR)\jk_worker.obj" : $(SOURCE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - - -!ENDIF - diff --git a/native/netscape/README b/native/netscape/README deleted file mode 100644 index 2c162f5..0000000 --- a/native/netscape/README +++ /dev/null @@ -1,31 +0,0 @@ -ABOUT ------ - -The redirector was originally developed using Visual C++ Ver.6.0, -so having this environment is a prerequisite if you want to perform -a custom build on Windows systems - -On Unix system, a Makefile.solaris and Makefile.linux are provided -and should be adapted to tailor to your own configuration. -Be sure to read the BUILDING.txt file, one directory up. - - -REQUIREMENT for Windows build ------------------------------ - -MS VC 6.0 (+ update, latest service pack is 6) - -BUILDING on Windows -------------------- - -The steps that you need to take are: - - 1. Change directory to the nsapi redirector plugins source directory. - 2. Set the IPLANET_HOME system environment value to iPlanet installation - directory or edit the nsapi.dsp and replace all $(IPLANET_HOME) - occurrences with the real path - 3. Execute the following command: - nmake -f Makefile.vc [SO_VERSION=-1.2.49] - -An alternative will be to open the isapi workspace file (nsapi.dsw) in msdev and -build it using the build menu. diff --git a/native/netscape/jk_nsapi_plugin.c b/native/netscape/jk_nsapi_plugin.c deleted file mode 100644 index b830ba5..0000000 --- a/native/netscape/jk_nsapi_plugin.c +++ /dev/null @@ -1,576 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*************************************************************************** - * Description: NSAPI plugin for Netscape servers * - * Author: Gal Shachor <shac...@il.ibm.com> * - ***************************************************************************/ - -#if defined(WIN32) -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0500 -#endif -#include <winsock2.h> -#endif - -#include "nsapi.h" -#include "jk_global.h" -#include "jk_url.h" -#include "jk_util.h" -#include "jk_map.h" -#include "jk_pool.h" -#include "jk_service.h" -#include "jk_worker.h" -#include "jk_shm.h" -#include "jk_ajp13.h" - -#define URI_PATTERN "path" -#define DEFAULT_WORKER_NAME ("ajp13") -#define REJECT_UNSAFE_TAG "reject_unsafe" - -#define STRNULL_FOR_NULL(x) ((x) ? (x) : "(null)") - -struct nsapi_private_data -{ - jk_pool_t p; - - pblock *pb; - Session *sn; - Request *rq; -}; -typedef struct nsapi_private_data nsapi_private_data_t; - -static int init_on_other_thread_is_done = JK_FALSE; -static int init_on_other_thread_is_ok = JK_FALSE; - -static const char ssl_cert_start[] = "-----BEGIN CERTIFICATE-----\r\n"; -static const char ssl_cert_end[] = "\r\n-----END CERTIFICATE-----\r\n"; - -static jk_logger_t *logger = NULL; -static jk_worker_env_t worker_env; -static jk_map_t *init_map = NULL; -static jk_uri_worker_map_t *uw_map = NULL; -static int jk_shm_size = 0; - -static int JK_METHOD start_response(jk_ws_service_t *s, - int status, - const char *reason, - const char *const *header_names, - const char *const *header_values, - unsigned num_of_headers); - -static int JK_METHOD ws_read(jk_ws_service_t *s, - void *b, unsigned l, unsigned *a); - -static int JK_METHOD ws_write(jk_ws_service_t *s, const void *b, unsigned l); - -NSAPI_PUBLIC int jk_init(pblock * pb, Session * sn, Request * rq); - -NSAPI_PUBLIC void jk_term(void *p); - -NSAPI_PUBLIC int jk_service(pblock * pb, Session * sn, Request * rq); - -static int init_ws_service(nsapi_private_data_t * private_data, - jk_ws_service_t *s); - -static int setup_http_headers(nsapi_private_data_t * private_data, - jk_ws_service_t *s); - -static void init_workers_on_other_threads(void *init_d) -{ - init_map = (jk_map_t *)init_d; - /* we add the URI->WORKER MAP since workers using AJP14 will feed it */ - /* but where are they here in Netscape ? */ - if (uri_worker_map_alloc(&uw_map, NULL, logger)) { - uw_map->fname = ""; - uw_map->reload = JK_URIMAP_DEF_RELOAD; - uw_map->reject_unsafe = jk_map_get_bool(init_map, "worker." REJECT_UNSAFE_TAG, JK_FALSE); - worker_env.uri_to_worker = uw_map; - worker_env.pool = NULL; - - if (wc_open(init_map, &worker_env, logger)) { - init_on_other_thread_is_ok = JK_TRUE; - uri_worker_map_ext(uw_map, logger); - uri_worker_map_switch(uw_map, logger); - } - else { - jk_log(logger, JK_LOG_EMERG, - "In init_workers_on_other_threads, failed"); - } - } - else { - jk_log(logger, JK_LOG_EMERG, - "In init_workers_on_other_threads, failed"); - } - - init_on_other_thread_is_done = JK_TRUE; -} - -/* - * Convert string to lower case. - * If string is longer than the provided buffer, - * just return the original string. - */ -static const char *to_lower(const char *str, char *buf, int bufsz) -{ - const char *from = str; - char *to = buf; - char *end = buf + (bufsz - 1); - while (to != end && *from) { - *to = (char)tolower(*from); - to++; - from++; - } - if (to != end) { - *to = '\0'; - return buf; - } - return str; -} - -static int JK_METHOD start_response(jk_ws_service_t *s, - int status, - const char *reason, - const char *const *header_names, - const char *const *header_values, - unsigned num_of_headers) -{ - if (s && s->ws_private) { - nsapi_private_data_t *p = s->ws_private; - if (!s->response_started) { - unsigned i; - - s->response_started = JK_TRUE; - - /* Remove "old" content type */ - param_free(pblock_remove("content-type", p->rq->srvhdrs)); - - if (num_of_headers) { - /* - * NSAPI expects http header names to be lower case. - * This is only relevant for the server itself or other - * plugins searching for headers in the pblock. - * We use a buffer of limited length, because conforming - * with this rule should only matter for well-known headers. - */ - char name_buf[64]; - for (i = 0; i < (int)num_of_headers; i++) { - pblock_nvinsert(to_lower(header_names[i], name_buf, 64), - header_values[i], p->rq->srvhdrs); - } - } - else { - pblock_nvinsert("content-type", "text/plain", p->rq->srvhdrs); - } - - protocol_status(p->sn, p->rq, status, (char *)reason); - - protocol_start_response(p->sn, p->rq); - } - return JK_TRUE; - - } - return JK_FALSE; -} - -static int JK_METHOD ws_read(jk_ws_service_t *s, - void *b, unsigned l, unsigned *a) -{ - if (s && s->ws_private && b && a) { - nsapi_private_data_t *p = s->ws_private; - - *a = 0; - if (l) { - unsigned i; - netbuf *inbuf = p->sn->inbuf; - - i = netbuf_getbytes(inbuf, b, l); - if (NETBUF_EOF == i || NETBUF_ERROR == i) { - return JK_FALSE; - } - - *a = i; - - } - return JK_TRUE; - } - return JK_FALSE; -} - -static int JK_METHOD ws_write(jk_ws_service_t *s, const void *b, unsigned l) -{ - if (s && s->ws_private && b) { - nsapi_private_data_t *p = s->ws_private; - - if (l) { - if (!s->response_started) { - start_response(s, 200, NULL, NULL, NULL, 0); - } - - if (net_write(p->sn->csd, (char *)b, (int)l) == IO_ERROR) { - return JK_FALSE; - } - } - - return JK_TRUE; - - } - return JK_FALSE; -} - -NSAPI_PUBLIC int jk_init(pblock * pb, Session * sn, Request * rq) -{ - char *worker_prp_file = pblock_findval(JK_WORKER_FILE_TAG, pb); - char *log_level_str = pblock_findval(JK_LOG_LEVEL_TAG, pb); - char *log_file = pblock_findval(JK_LOG_FILE_TAG, pb); - char *shm_file = pblock_findval(JK_SHM_FILE_TAG, pb); - char *shm_file_safe = ""; - char *reject_unsafe = pblock_findval(REJECT_UNSAFE_TAG, pb); - - int rc = REQ_ABORTED; - - if (!worker_prp_file) { - worker_prp_file = JK_WORKER_FILE_DEF; - } - - if (!log_level_str) { - log_level_str = JK_LOG_DEF_VERB; - } - - if (!log_file) { - fprintf(stderr, - "Missing attribute %s in magnus.conf (jk_init) - aborting!\n", JK_LOG_FILE_TAG); - return rc; - } - - if (shm_file) { - shm_file_safe = shm_file; - } -#if !defined(WIN32) - else { - fprintf(stderr, - "Missing attribute %s in magnus.conf (jk_init) - aborting!\n", JK_SHM_FILE_TAG); - return rc; - } -#endif - - fprintf(stderr, - "In jk_init.\n Worker file = %s.\n Log level = %s.\n Log File = %s\n SHM File = %s\n", - worker_prp_file, log_level_str, log_file, shm_file); - - if (!jk_open_file_logger(&logger, log_file, - jk_parse_log_level(log_level_str))) { - logger = NULL; - } - - if (jk_map_alloc(&init_map)) { - if (jk_map_read_properties(init_map, NULL, worker_prp_file, NULL, - JK_MAP_HANDLE_DUPLICATES, logger)) { - int rv; - int sleep_cnt; - SYS_THREAD s; - - if (jk_map_resolve_references(init_map, "worker.", 1, 1, logger) == JK_FALSE) { - jk_log(logger, JK_LOG_ERROR, "Error in resolving configuration references"); - } - - if (reject_unsafe) { - jk_map_add(init_map, "worker." REJECT_UNSAFE_TAG, reject_unsafe); - } - - jk_shm_size = jk_shm_calculate_size(init_map, logger); - if ((rv = jk_shm_open(shm_file, jk_shm_size, logger)) != 0) - jk_log(logger, JK_LOG_ERROR, - "Initializing shm:%s errno=%d. Load balancing workers will not function properly.", - jk_shm_name(), rv); - - s = systhread_start(SYSTHREAD_DEFAULT_PRIORITY, - 0, init_workers_on_other_threads, init_map); - for (sleep_cnt = 0; sleep_cnt < 60; sleep_cnt++) { - systhread_sleep(1000); - jk_log(logger, JK_LOG_DEBUG, "jk_init, a second passed"); - if (init_on_other_thread_is_done) { - break; - } - } - - if (init_on_other_thread_is_done && init_on_other_thread_is_ok) { - magnus_atrestart(jk_term, NULL); - rc = REQ_PROCEED; - jk_log(logger, JK_LOG_INFO, "%s initialized", JK_FULL_EXPOSED_VERSION); - } - -/* if(wc_open(init_map, NULL, logger)) { - magnus_atrestart(jk_term, NULL); - rc = REQ_PROCEED; - } -*/ - } - } - - return rc; -} - -NSAPI_PUBLIC void jk_term(void *p) -{ - if (uw_map) { - uri_worker_map_free(&uw_map, logger); - } - - if (init_map) { - jk_map_free(&init_map); - } - - wc_close(logger); - jk_shm_close(logger); - if (logger) { - jk_close_file_logger(&logger); - } -} - -NSAPI_PUBLIC int jk_service(pblock * pb, Session * sn, Request * rq) -{ - char *worker_name = pblock_findval(JK_WORKER_NAME_TAG, pb); - char *uri_pattern = pblock_findval(URI_PATTERN, pb); - jk_worker_t *worker; - int rc = REQ_ABORTED; - - if (uri_pattern) { - char *uri = pblock_findval("uri", rq->reqpb); - - if (0 != shexp_match(uri, uri_pattern)) { - return REQ_NOACTION; - } - } - - if (!worker_name) { - worker_name = DEFAULT_WORKER_NAME; - } - - worker = wc_get_worker_for_name(worker_name, logger); - if (worker) { - nsapi_private_data_t private_data; - jk_ws_service_t s; - jk_pool_atom_t buf[SMALL_POOL_SIZE]; - - jk_open_pool(&private_data.p, buf, sizeof(buf)); - - private_data.pb = pb; - private_data.sn = sn; - private_data.rq = rq; - - jk_init_ws_service(&s); - - s.ws_private = &private_data; - s.pool = &private_data.p; - - wc_maintain(logger); - if (init_ws_service(&private_data, &s)) { - jk_endpoint_t *e = NULL; - if (worker->get_endpoint(worker, &e, logger)) { - int is_error = JK_HTTP_SERVER_ERROR; - int result; - if ((result = e->service(e, &s, logger, &is_error)) > 0) { - rc = REQ_PROCEED; - if (JK_IS_DEBUG_LEVEL(logger)) - jk_log(logger, JK_LOG_DEBUG, - "service() returned OK"); - } - else { - protocol_status(sn, rq, is_error, NULL); - if ((result == JK_CLIENT_ERROR) && (is_error == JK_HTTP_OK)) { - rc = REQ_EXIT; - jk_log(logger, JK_LOG_INFO, - "service() failed because client aborted connection"); - } - else { - rc = REQ_ABORTED; - jk_log(logger, JK_LOG_ERROR, - "service() failed with http error %d", is_error); - } - } - - e->done(&e, logger); - } - } - jk_close_pool(&private_data.p); - } - - return rc; -} - -static int init_ws_service(nsapi_private_data_t * private_data, - jk_ws_service_t *s) -{ - char *tmp; - int size; - int rc; - - s->start_response = start_response; - s->read = ws_read; - s->write = ws_write; - - s->auth_type = pblock_findval("auth-type", private_data->rq->vars); - s->remote_user = pblock_findval("auth-user", private_data->rq->vars); - - tmp = NULL; - rc = request_header("content-length", - &tmp, private_data->sn, private_data->rq); - - if ((rc != REQ_ABORTED) && tmp) { - sscanf(tmp, "%" JK_UINT64_T_FMT, &(s->content_length)); - } - - s->method = pblock_findval("method", private_data->rq->reqpb); - s->protocol = pblock_findval("protocol", private_data->rq->reqpb); - - s->remote_host = session_dns(private_data->sn); - s->remote_addr = pblock_findval("ip", private_data->sn->client); - /* Remote port is not available from NSAPI. */ - s->remote_port = "0"; - - tmp = pblock_findval("uri", private_data->rq->reqpb); - size = 3 * strlen(tmp) + 1; - s->req_uri = jk_pool_alloc(s->pool, size); - jk_canonenc(tmp, s->req_uri, size); - - s->query_string = pblock_findval("query", private_data->rq->reqpb); - - /* Local address is not available from NSAPI. */ - s->local_addr = server_hostname; - s->server_name = server_hostname; - - s->server_port = server_portnum; - s->server_software = system_version(); - - s->uw_map = uw_map; - - s->is_ssl = security_active; - - if (s->is_ssl) { - char *ssl_cert = pblock_findval("auth-cert", private_data->rq->vars); - if (ssl_cert != NULL) { - s->ssl_cert = jk_pool_alloc(s->pool, sizeof(ssl_cert_start)+ - strlen(ssl_cert)+ - sizeof(ssl_cert_end)); - strcpy(s->ssl_cert, ssl_cert_start); - strcat(s->ssl_cert, ssl_cert); - strcat(s->ssl_cert, ssl_cert_end); - s->ssl_cert_len = strlen(s->ssl_cert); - } - s->ssl_cipher = pblock_findval("cipher", private_data->sn->client); - s->ssl_session = pblock_findval("ssl-id", private_data->sn->client); - /* XXX: We need to investigate how to set s->ssl_key_size */ - } - - rc = setup_http_headers(private_data, s); - - /* Dump all connection param so we can trace what's going to - * the remote tomcat - */ - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, - "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s uri=%s", - STRNULL_FOR_NULL(s->protocol), - STRNULL_FOR_NULL(s->method), - STRNULL_FOR_NULL(s->remote_host), - STRNULL_FOR_NULL(s->remote_addr), - STRNULL_FOR_NULL(s->server_name), - s->server_port, - STRNULL_FOR_NULL(s->auth_type), - STRNULL_FOR_NULL(s->remote_user), - STRNULL_FOR_NULL(s->req_uri)); - } - - return rc; - -} - -static int setup_http_headers(nsapi_private_data_t * private_data, - jk_ws_service_t *s) -{ - int need_content_length_header = - (s->content_length == 0) ? JK_TRUE : JK_FALSE; - - pblock *headers_jar = private_data->rq->headers; - int cnt; - int i; - - for (i = 0, cnt = 0; i < headers_jar->hsize; i++) { - struct pb_entry *h = headers_jar->ht[i]; - while (h && h->param) { - cnt++; - h = h->next; - } - } - - s->headers_names = NULL; - s->headers_values = NULL; - s->num_headers = cnt; - if (cnt) { - /* allocate an extra header slot in case we need to add a content-length header */ - s->headers_names = - jk_pool_alloc(&private_data->p, (cnt + 1) * sizeof(char *)); - s->headers_values = - jk_pool_alloc(&private_data->p, (cnt + 1) * sizeof(char *)); - - if (s->headers_names && s->headers_values) { - for (i = 0, cnt = 0; i < headers_jar->hsize; i++) { - struct pb_entry *h = headers_jar->ht[i]; - while (h && h->param) { - s->headers_names[cnt] = h->param->name; - s->headers_values[cnt] = h->param->value; - if (need_content_length_header && - !strncmp(h->param->name, "content-length", 14)) { - need_content_length_header = JK_FALSE; - } - cnt++; - h = h->next; - } - } - /* Add a content-length = 0 header if needed. - * Ajp13 assumes an absent content-length header means an unknown, - * but non-zero length body. - */ - if (need_content_length_header) { - s->headers_names[cnt] = "content-length"; - s->headers_values[cnt] = "0"; - cnt++; - } - s->num_headers = cnt; - return JK_TRUE; - } - } - else { - if (need_content_length_header) { - s->headers_names = - jk_pool_alloc(&private_data->p, sizeof(char *)); - s->headers_values = - jk_pool_alloc(&private_data->p, sizeof(char *)); - if (s->headers_names && s->headers_values) { - s->headers_names[0] = "content-length"; - s->headers_values[0] = "0"; - s->num_headers++; - return JK_TRUE; - } - } - else - return JK_TRUE; - } - - return JK_FALSE; -} diff --git a/native/netscape/nsapi.dsp b/native/netscape/nsapi.dsp deleted file mode 100644 index f5f28fb..0000000 --- a/native/netscape/nsapi.dsp +++ /dev/null @@ -1,275 +0,0 @@ -# Microsoft Developer Studio Project File - Name="nsapi" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=nsapi - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "nsapi.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "nsapi.mak" CFG="nsapi - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "nsapi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "nsapi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "nsapi - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "nsapi_release" -# PROP Intermediate_Dir "nsapi_release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JK_NSAPI" /D "NSAPI_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /Zi /O2 /I "..\common" /I "$(IPLANET_HOME)\plugins\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JK_NSAPI" /D "NSAPI_EXPORTS" /D "XP_WIN32" /D "MCC_HTTPD" /D "SPAPI20" /Fd"Release/nsapi_redirect_src" /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 ns-httpd40.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x6A6B0000" /dll /debug /machine:I386 /out:"nsapi_release/nsapi_redirect.dll" /libpath:"$(IPLANET_HOME)\plugins\lib" - -!ELSEIF "$(CFG)" == "nsapi - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "nsapi___Win32_Debug" -# PROP BASE Intermediate_Dir "nsapi___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "nsapi_debug" -# PROP Intermediate_Dir "nsapi_debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JK_NSAPI" /D "NSAPI_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\common" /I "$(IPLANET_HOME)\plugins\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JK_NSAPI" /D "NSAPI_EXPORTS" /D "XP_WIN32" /D "MCC_HTTPD" /D "SPAPI20" /Fd"Debug/nsapi_redirect_src" /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ns-httpd40.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x6A6B0000" /dll /debug /machine:I386 /out:"nsapi_debug/nsapi_redirect.dll" /pdbtype:sept /libpath:"$(IPLANET_HOME)\plugins\lib" - -!ENDIF - -# Begin Target - -# Name "nsapi - Win32 Release" -# Name "nsapi - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\common\jk_ajp12_worker.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp13.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp13_worker.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp14.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp14_worker.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp_common.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_connect.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_context.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_lb_worker.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_map.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_md5.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_msg_buff.c -# End Source File -# Begin Source File - -SOURCE=.\jk_nsapi_plugin.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_pool.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_shm.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_sockbuf.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_status.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_uri_worker_map.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_url.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_util.c -# End Source File -# Begin Source File - -SOURCE=..\common\jk_worker.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\common\jk_ajp13.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp13_worker.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp14.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp14_worker.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_ajp_common.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_connect.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_context.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_global.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_lb_worker.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_logger.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_map.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_md5.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_msg_buff.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_mt.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_pool.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_service.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_shm.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_status.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_uri_worker_map.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_url.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_util.h -# End Source File -# Begin Source File - -SOURCE=..\common\jk_worker.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tools/jkbindist.sh b/tools/jkbindist.sh index e11682a..0cab7d9 100755 --- a/tools/jkbindist.sh +++ b/tools/jkbindist.sh @@ -84,9 +84,6 @@ case "$websrv" in iis*) webdesc="Microsoft IIS Web Server" ;; - netscape*|nsapi*) - webdesc="Oracle iPlanet Web Server" - ;; *) echo "Unknown web server: $webserv" echo " Supported are: httpd, iis, nsapi" diff --git a/xdocs/ajp/project.xml b/xdocs/ajp/project.xml index 51ffc70..3c10ac5 100644 --- a/xdocs/ajp/project.xml +++ b/xdocs/ajp/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/common_howto/project.xml b/xdocs/common_howto/project.xml index 14b490f..73f9b3b 100644 --- a/xdocs/common_howto/project.xml +++ b/xdocs/common_howto/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/common_howto/proxy.xml b/xdocs/common_howto/proxy.xml index 0e6bacf..c0e80b6 100644 --- a/xdocs/common_howto/proxy.xml +++ b/xdocs/common_howto/proxy.xml @@ -27,10 +27,9 @@ </properties> <body> <section name="Introduction"> -<p>The Apache HTTP Server module mod_jk and its ISAPI and NSAPI redirector -variants for Microsoft IIS and the iPlanet Web Server connect -the web server to a backend (typically Tomcat) using the AJP protocol. -The web server receives an HTTP(S) request and the module forwards +<p>The Apache HTTP Server module mod_jk and its ISAPI redirector variant for +Microsoft IIS connect the web server to a backend (typically Tomcat) using the +AJP protocol. The web server receives an HTTP(S) request and the module forwards the request to the backend. This function is usually called a gateway or a proxy, in the context of HTTP it is called a reverse proxy. </p> diff --git a/xdocs/common_howto/quick.xml b/xdocs/common_howto/quick.xml index bbd9573..3d5277b 100644 --- a/xdocs/common_howto/quick.xml +++ b/xdocs/common_howto/quick.xml @@ -34,7 +34,7 @@ <li> <b>workers.properties</b> is a mandatory file used by the web server and which is the same for all JK implementations (mod_jk for the Apache HTTP Server, - ISAPI for Microsoft IIS, NSAPI for the iPlanet Web Server). + ISAPI for Microsoft IIS). </li> <li> <b>web server</b> add-ons to be set on the web server side. @@ -145,16 +145,6 @@ More information to be added! </todo> </section> -<section name="Minimum iPlanet Web Server configuration"> -<p> - A separate <a href="../webserver_howto/nes.html">HowTo for the iPlanet Web Server</a> is available. -<todo> -More information to be added? -</todo> -</p> -</section> - - <section name="Test your configuration"> <p> (Re)start the web server and browse to the <a href="http://localhost/examples/">http://localhost/examples/</a> diff --git a/xdocs/common_howto/timeouts.xml b/xdocs/common_howto/timeouts.xml index ec39a64..1dfd4c0 100644 --- a/xdocs/common_howto/timeouts.xml +++ b/xdocs/common_howto/timeouts.xml @@ -220,9 +220,8 @@ attribute <b>connection_pool_size</b>. We generally do not recommend to use this attribute in combination with Apache HTTP Server. For Apache we automatically detect the number of threads per process and set the maximum pool size to this value. For Microsoft IIS we use -a default value of 250 (before version 1.2.20: 10), -for the iPlanet Web Server the default is "1". -We strongly recommend adjusting this value for IIS and the iPlanet Web Server +a default value of 250 (before version 1.2.20: 10). +We strongly recommend adjusting this value for IIS to the number of requests one web server process should be able to send to a backend in parallel. You should measure how many connections you need during peak hours without performance problems, and then add some diff --git a/xdocs/index.xml b/xdocs/index.xml index 03e45ab..d38f0cf 100644 --- a/xdocs/index.xml +++ b/xdocs/index.xml @@ -40,9 +40,6 @@ and provides web server plugins to connect web servers with Tomcat and other bac <li>the Apache HTTP Server with a plugin (module) named <strong>mod_jk</strong>.</li> <li>Microsoft IIS with a plugin (extension) named <strong>ISAPI redirector</strong> (or simply redirector).</li> -<li>the iPlanet Web Server with a plugin named <strong>NSAPI redirector</strong>. The -iPlanet Web Server was previously known under various names, including Netscape Enterprise Server, -SunOne Web Server and Sun Enterprise System web server.</li> </ul> <p>In all cases the plugin uses a special protocol named <strong>Apache JServ Protocol</strong> or simply <strong>AJP</strong> to connect to the backend. Backends known to support AJP @@ -161,8 +158,6 @@ install JK for the various web servers. </li> <li><a href="webserver_howto/iis.html"><b>Microsoft IIS (ISAPI redirector)</b></a> </li> -<li><a href="webserver_howto/nes.html"><b>iPlanet Web Server (NSAPI redirector)</b></a> -</li> </ul> </section> diff --git a/xdocs/jk2/installhowto.xml b/xdocs/jk2/installhowto.xml index dbc0479..5883a52 100644 --- a/xdocs/jk2/installhowto.xml +++ b/xdocs/jk2/installhowto.xml @@ -35,8 +35,8 @@ </p> <p> JNI support in JK2 require APR, which is provded in Apache 2.0, and is - available for many platforms, so Apache 1.3, IIS and NES/iPlanet should be - able to use it + available for many platforms, so Apache 1.3 and IIS should be able to + use it. </p> <subsection name="Apache 1.3"> <p> diff --git a/xdocs/miscellaneous/changelog.xml b/xdocs/miscellaneous/changelog.xml index e2980f3..33d556e 100644 --- a/xdocs/miscellaneous/changelog.xml +++ b/xdocs/miscellaneous/changelog.xml @@ -42,6 +42,10 @@ </section> <section name="Changes between 1.2.48 and 1.2.49"> <changelog> + <update> + Remove support for the Netscape / Sun ONE / Oracle iPlanet Web Server as + the product has been retired. (markt) + </update> <fix> <bug>64878</bug>: Common: Enable configure to find the correct sizes for pid_t and pthread_t when building on MacOS. (markt) diff --git a/xdocs/miscellaneous/faq.xml b/xdocs/miscellaneous/faq.xml index b46b0bb..85e074d 100644 --- a/xdocs/miscellaneous/faq.xml +++ b/xdocs/miscellaneous/faq.xml @@ -76,11 +76,6 @@ called the <b>mod_jk module</b>. called the <b>ISAPI redirector</b>. </p> -<p> -<a href="../webserver_howto/nes.html">iPlanet Web Server</a> support is implemented on JK, using a plugin -called the <b>NSAPI redirector</b>. -</p> - </subsection> <subsection name="Where can I get more information ?"> @@ -103,10 +98,6 @@ For <b>JK 1.2.x</b>, you should read: </li> <li> -<a href="../webserver_howto/nes.html">iPlanet Web Server and JK (NSAPI redirector)</a> -</li> - -<li> <a href="../common_howto/workers.html">Workers configuration</a> </li> </ul> diff --git a/xdocs/miscellaneous/project.xml b/xdocs/miscellaneous/project.xml index a2cfe86..181243e 100644 --- a/xdocs/miscellaneous/project.xml +++ b/xdocs/miscellaneous/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/news/project.xml b/xdocs/news/project.xml index 4603190..ffdf531 100644 --- a/xdocs/news/project.xml +++ b/xdocs/news/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/project.xml b/xdocs/project.xml index 603fec0..9acd5d7 100644 --- a/xdocs/project.xml +++ b/xdocs/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/reference/project.xml b/xdocs/reference/project.xml index 34aa9f1..a876c2b 100644 --- a/xdocs/reference/project.xml +++ b/xdocs/reference/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> diff --git a/xdocs/reference/workers.xml b/xdocs/reference/workers.xml index d697d52..605b356 100644 --- a/xdocs/reference/workers.xml +++ b/xdocs/reference/workers.xml @@ -368,16 +368,15 @@ It will limit the number of those connection that each web server child process can made. <p> Connection pool size property is only used for multi threaded -web servers such as the Apache HTTP Server, Microsoft IIS and the iPlanet Web Server. +web servers such as the Apache HTTP Server and Microsoft IIS. The connection_pool_size property needs to reflect the number of requests one web server process should be able to send to a backend in parallel. Usually this is the same as the number of threads per web server process. JK will discover this number for the Apache HTTP Server automatically and set the pool size to -this value. For IIS the default value is 250 (before version 1.2.20: 10), -for iPlanet the default value is 1. +this value. For IIS the default value is 250 (before version 1.2.20: 10). </p> -<p>We strongly recommend adjusting this value for IIS and iPlanet +<p>We strongly recommend adjusting this value for IIS to the number of requests one web server process should be able to send to a backend in parallel. You should measure how many connections you need during peak activity without performance problems, and then add some @@ -1199,11 +1198,11 @@ It will limit the number of those connection that each web server child process can make. <p> Cachesize property is used only for multi threaded -web servers such as Apache HTTP Server 2.x (all MPMs except prefork), IIS and iPlanet. The cachesize property +web servers such as Apache HTTP Server 2.x (all MPMs except prefork) and IIS. The cachesize property should reflect the number of threads per child process. JK will discover the number of threads per child process on the Apache HTTP Server with threaded MPM and set its default value to match the current ThreadsPerChild Apache configuration. For IIS the default -value is 10. For web servers other than Apache or IIS this value has to be set manually. +value is 10. </p> <warn>Do not use cachesize with values higher then 1 on <b>Apache 2.x with prefork MPM</b> or <b>Apache 1.3.x</b>!</warn> </directive> diff --git a/xdocs/webserver_howto/nes.xml b/xdocs/webserver_howto/nes.xml deleted file mode 100644 index d94f75e..0000000 --- a/xdocs/webserver_howto/nes.xml +++ /dev/null @@ -1,503 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE document [ - <!ENTITY project SYSTEM "project.xml"> -]> -<document url="nes.html"> - - &project; -<copyright> - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -</copyright> -<properties> -<title>iPlanet Web Server HowTo</title> -<author email="hgo...@apache.org">Henri Gomez</author> -<author email="j...@apache.org">Jim Jagielski</author> -<author email="shac...@il.ibm.com">Gal Shachor</author> -<author email="mt...@apache.org">Mladen Turk</author> -</properties> -<body> -<section name="Introduction"> -<p> -This document explains how to set up the iPlanet Web Server -to cooperate with Tomcat. The iPlanet Web Server was previously known under -various names, including Netscape Enterprise Server, SunOne Web Server and -Sun Enterprise System web server. -</p> - -<p> -Normally the iPlanet Web Server comes with its own Servlet engine, -but you can also configure it to send servlet and JSP requests to Tomcat -using the NSAPI redirector plugin. -</p> - -<p> -It is recommended that you also read the <a href="../common_howto/workers.html">Workers HowTo</a> document -to learn how to setup the working entities between your web server and Tomcat Engines. -</p> - - -<subsection name="Document Conventions and Assumptions"> -<p> -${tomcat_home} is the root directory of tomcat. -Your Tomcat installation should have the following subdirectories: - -<ul> -<li> -${tomcat_home}\conf - Where you can place various configuration files -</li> -<li> -${tomcat_home}\webapps - Containing example applications -</li> -<li> -${tomcat_home}\bin - Where you place web server plugins -</li> -</ul> -</p> -<p> -In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>. -A worker is defined to be a tomcat process that accepts work from the iPlanet Web Server. -</p> -</subsection> - - -<subsection name="Supported Configuration"> -<p> -The NSAPI redirector was developed and tested on: -<ul> -<li> -WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes -</li> -<li> -Sun ONE Web Server 6.1 -</li> -<li> -Tomcat 4.1 to Tomcat 8. -</li> -</ul> -</p> - -<p> -The redirector uses the AJP protocol to send requests to the Tomcat containers. -The AJP version typically used is <b>ajp13</b>. -</p> -</subsection> - -<subsection name="Who supports AJP protocols?"> -<p> -Tomcat supports ajp13 since Tomcat 3.2. -Others servlet engines such as <b>Jetty</b> or <b>JBoss</b> also support the ajp13 protocol -</p> - -<p> -The <b>ajp12</b> protocol has been <b>deprecated</b> and you should no longer use it. -The <b>ajp14</b> protocol is considered experimental. -</p> - -</subsection> - -<subsection name="How does it work ?"> -<p> -<ol> -<li> -The NSAPI redirector is a web server plugin based on the NSAPI web server API. -The web server loads the NSAPI redirector plugin and calls its service handler -function for all requests that are assigned to the "servlet" configuration object. -</li> -<li> -For each in-coming request the web server will execute the set of NameTrans directives -that we added to obj.conf, the assign-name function will check if it's <code>from</code> -parameter matches the request URL. -</li> -<li> -If a match is found, assign-name will assign the servlet object name to the request. -This will cause the web server to send the request to the servlet configuration object. -</li> -<li> -The web server will execute our jk_service extension. The extension collects the -request parameters and forwards them to the appropriate worker using the ajp13 protocol -(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>). -the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol. -</li> -<li> -The extension collects the response from the worker and returns it to the browser. -</li> -</ol> -</p> -</subsection> - -</section> - -<section name="Installation"> -<p> -A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under -the win32/i386 directory of the Tomcat Connectors distribution. -You can also build a copy locally from the Tomcat Connectors source distribution. -</p> -<p> -The NSAPI redirector requires two files: -<ul> -<li> -nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI web server plugin, either obtain a pre-built DLL/so or build it yourself -(see the build section). -</li> -<li> -workers.properties - A file that describes the host(s) and port(s) used by the workers (Tomcat processes). -A sample workers.properties can be found under the conf directory of the source distribution. -</li> -</ul> - -The installation includes the following parts: - -<ul> -<li> -Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets -with your browser. -</li> -<li> -Adding your own contexts to the configuration. -</li> -</ul> - -</p> -</section> - -<section name="Configuring the NSAPI Redirector"> -<p> -In this document we'll assume that nsapi_redirect.dll is placed in -<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b> -and you created a log directory <b>c:\jk\logs</b> -</p> - -<ul> -<li> -If the built in servlet support is working disable it. -</li> -<li> -Add the NSAPI redirector plugin into the iPlanet Web Server configuration. -Edit your server <b>magnus.conf</b> and add the following lines: -</li> -</ul> - -<source>Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)" -Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm" -</source> -<ul> -<li> -Edit your server <b>obj.conf</b> and add the following lines: -</li> -</ul> -<source>In the default object NameTrans section -<Object name="default"> - -NameTrans fn="assign-name" from="/examples(|/*)" name="jknsapi" -.... -</Object> - -Create a new configuration object by adding the following lines to the end of the obj.conf file - -<Object name="jknsapi"> -ObjectType fn=force-type type=text/plain -Service fn="jk_service" method="*" worker="worker1" -</Object> -</source> - -<ul> -<li> -Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size: -</li> -</ul> - -<source>#An entry that lists all the workers defined. For example: -worker.list=worker1 - -# Entries that define the host and port associated with these workers. -worker.worker1.host=localhost -worker.worker1.port=8009 -worker.worker1.type=ajp13 -worker.worker1.connection_pool_size=50 -</source> - -<ul> -<li> -Restart the web server (stop and start the server) -</li> -</ul> - -<p> -That's all, now you should start tomcat and ask for http://server:port/examples/ -</p> -<warn> -The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in -the <b>Object</b> element. Make sure you have no leading white space (no indentation) -on any line of this file. -</warn> - -<subsection name="Adding additional Contexts"> -<p> -The examples context is useful for verifying your installation, but you will also need to add your own contexts. -Adding a new context requires two operations: -</p> -<ul> -<li> -Adding the context to Tomcat (I am not going to talk about this). -</li> -<li> -Assigning the NSAPI redirector to handle this context. -</li> -</ul> - -<p> -Assigning the NSAPI redirector to handle this context is simple, -all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like: -</p> - -<source>NameTrans fn="assign-name" from="/<context_name>/*" name="jknsapi" -</source> - -<p> -After saving <b>obj.conf</b> restart the web server and it will serve the new context. -</p> -</subsection> - -<subsection name="Advanced Context Configuration"> -<p> -Sometimes it is better to have the web server serve the static pages (html, gif, jpeg etc.) -even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process. The web server can do it on its own. -</p> -<p> -Making the web server serve static files that are part of the Tomcat contexts requires the following: -</p> -<ul> -<li> -Configuring the web server to know about the Tomcat contexts -</li> -<li> -Make sure that the WEB-INF and META-INF directories are protected from access. -</li> -<li> -Configuring the web server to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling. -</li> -</ul> - -<p> -Adding the contents of a Tomcat context to the web server requires the addition of a new virtual directory -that covers the Tomcat context. -</p> - -<p> -For example, adding a /example virtual directory that -covers the <b>c:\tomcat\webapps\examples</b> directory. -</p> - -<p> -To add a new virtual directory add the following line to your <b>obj.conf</b>: -</p> - -<source>NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples" -</source> - -<p> -WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>, -this directory contains sensitive configurations data and Java classes and must be kept hidden from web users. -A second directory that should be protected is META-INF. -Those directories can be protected by adding the following line to the PathCheck section in the default configuration object: -</p> - -<source>PathCheck fn="deny-existence" path="*/WEB-INF/*" -PathCheck fn="deny-existence" path="*/META-INF/*" -</source> - -These lines instruct the web server to reject any request with a URL that contains the path /WEB-INF/ -or /META-INF/. - -<p> -Configuring the web server to assign the NSAPI redirector only specific requests is somewhat harder, -you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle -(usually only JSP files and servlets). -</p> - -<p> -This requires a change to NameTrans portion of <b>obj.conf</b>. -</p> - -<source>For the examples context it requires to replace the following line: - -NameTrans fn="assign-name" from="/examples/*" name="jknsapi" - -with the following two lines: - -NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi" -NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi" -</source> - -<p> -As you can see the second configuration is more explicit, it actually instructs -the web server to assign the redirector with only requests to resources under -<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>. -</p> - -<p> -You can be even more explicit and provide lines such as: -</p> - -<source>NameTrans fn="assign-name" from="/examples/servlets/chat" name="jknsapi" - -Instructs the web server to assign the redirector requests whose URL path equals /example/servlets/chat -</source> - -</subsection> - -<subsection name="Advanced Worker Configuration"> -<p> -Sometimes you want to serve different contexts with different Tomcat processes -(for example to spread the load among different machines). -To achieve such goal you will need to define several workers and assign each context with its own worker. -</p> - -<p> -Defining workers is done in <b>workers.properties</b>, this file includes two types of entries: -</p> - -<source>#An entry that lists all the workers defined. For example: -worker.list=worker1,worker2 - -# Entries that define the host and port associated with these workers. -worker.worker1.host=localhost -worker.worker1.port=8009 -worker.worker1.type=ajp13 - -worker.worker2.host=otherhost -worker.worker2.port=8009 -worker.worker2.type=ajp13 -</source> - -<p> -The above examples defined two workers, now we can use these workers to serve two different -contexts each with it's own worker. -Submitting requests to different workers is accomplished by using multiple Service directives -in the servlet configuration Object, each with a different path pattern parameter. -</p> - -<p> -For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the -<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration: -</p> - -<source><Object name="jknsapi"> -ObjectType fn=force-type type=text/plain -Service fn="jk_service" worker="worker1" path="/examples/*" -Service fn="jk_service" worker="worker2" path="/webpages/*" -Service fn="jk_service" worker="worker1" -</Object> -</source> - -<p> -More informations on using and configuring workers in the <a href="../common_howto/workers.html">Workers HowTo</a> -and in the <a href="../reference/workers.html">worker.properties configuration reference</a>. - -</p> -</subsection> - -</section> - -<section name="Building the NSAPI redirector for Windows"> -<p> -The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want -to perform a custom build. You should also have web server developer SDK for your version of the web server. - -The steps that you need to take are: -<ul> -<li> -Change directory to the <code>native/netscape</code> source directory. -</li> -<li> -Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own web server installation -(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option) -</li> -<li> -Make the source with MSDEV -</li> -</ul> -<screendos> -<notedos>Change directory to the NSAPI redirector source directory</notedos> -<typedos>cd c:\tomcat-connectors-xxx-src\native\netscape</typedos> -<notedos>Build the sources using MSDEV</notedos> -<typedos>MSDEV nsapi.dsp /MAKE ALL</typedos> -</screendos> -</p> -<p> -If msdev is not in your path, enter the full path to msdev.exe. -This will build both release and debug versions of the NSAPI redirector plugin. -An alternative will be to open the nsapi workspace file (nsapi.dsw) in msdev and -build it using the build menu. -</p> -<p> -After the build, you will have the required nsapi_redirect.dll plugin. -</p> -</section> -<section name="Building the NSAPI redirector for Unix"> -<p> -The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris). - -The steps that you need to take are: -<ul> -<li> -Change directory to the <code>native</code> source directory. -</li> -<li> -configure for the iPlanet Web Server. -</li> -<li> -Change directory to the <code>netscape</code> sub directory. -</li> -<li> -Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation -resp. web server server installation. Depending on the web server version, you must add the subdirectory -"plugins" to SUITSPOT_HOME. -The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists. -</li> -<li> -Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs. -In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc -instead of GNU gcc. -</li> -<li> -Make the source with gmake. -</li> -</ul> -<screendos> -<notedos>Change directory to the NSAPI redirector source directory</notedos> -<typedos>cd /usr/local/src/tomcat-connectors-xxx-src/native</typedos> -<notedos>configure for iPlanet Web Server</notedos> -<typedos>./configure --enable-netscape</typedos> -<notedos>Change directory to the netscape directory</notedos> -<typedos>cd netscape</typedos> -<notedos>Set JAVA_HOME (ksh example)</notedos> -<typedos>export JAVA_HOME=/path/to/my/java</typedos> -<notedos>Set SUITSPOT_HOME (ksh example)</notedos> -<typedos>export SUITSPOT_HOME=/path/to/my/netscape/server</typedos> -<notedos>Edit the Makefile</notedos> -<typedos>vi Makefile.solaris</typedos> -<notedos>Make the source with gmake</notedos> -<typedos>gmake -f Makefile.solaris</typedos> -</screendos> -</p> -<p> -After the build, you will have the required nsapi_redirector.so plugin. -</p> -</section> -</body> -</document> diff --git a/xdocs/webserver_howto/project.xml b/xdocs/webserver_howto/project.xml index 0f17c42..59b62bf 100644 --- a/xdocs/webserver_howto/project.xml +++ b/xdocs/webserver_howto/project.xml @@ -40,7 +40,6 @@ <menu name="Web Server HowTo"> <item name="Apache HTTP Server (mod_jk)" href="../webserver_howto/apache.html"/> <item name="Microsoft IIS (ISAPI redirector)" href="../webserver_howto/iis.html"/> - <item name="iPlanet Web Server (NSAPI redirector)" href="../webserver_howto/nes.html"/> </menu> <menu name="Reference Guide"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org