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
-&lt;Object name="default"&gt;
-    
-NameTrans fn="assign-name" from="/examples(|/*)" name="jknsapi" 
-....
-&lt;/Object&gt;
-  
-Create a new configuration object by adding the following lines to the end of 
the obj.conf file
-  
-&lt;Object name="jknsapi"&gt;
-ObjectType fn=force-type type=text/plain
-Service fn="jk_service" method="*" worker="worker1"
-&lt;/Object&gt;
-</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="/&lt;context_name&gt;/*" 
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>&lt;Object name="jknsapi"&gt;
-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"
-&lt;/Object&gt;
-</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
-&quot;plugins&quot; 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

Reply via email to