dev@glassfish.java.net

Package regression with ProxyHandler interface

From: Jan Luehe <Jan.Luehe_at_Sun.COM>
Date: Wed, 01 Jul 2009 11:52:43 -0700

I'm trying to fix a package regression of an exposed interface.

Earlier versions of GlassFish started exposing the
com.sun.appserv.ProxyHandler interface, which is useful for when
GlassFish is front-ended by an SSL-offloading load-balancer. Its
default implementation (which works with Sun's load-balancer plug-in) is
given by com.sun.enterprise.web.ProxyHandlerImpl, and alternative
implementations may be specified (as http-listener/http-service
properties, using their FQCN) in domain.xml.

Since this has been an exposed interface, it must be preserved for
backward compatibility reasons.

In GlassFish v3, the ProxyHandler interface was moved from
"com.sun.appserv" to "com.sun.appserv.security.provider".

It needs to be moved back to its original package. In order to avoid any
split-packages, that would mean moving ProxyHandler.java to

  common/common-util/src/main/java/com/sun/appserv

which already contains BytecodePreprocessor.java and ClassLoaderUtil.java
and therefore "owns" the com.sun.appserv package.

ProxyHandler.java imports javax.servlet.http.HttpServletRequest, so if we
moved it to "common/common-util", then we would also have to move
"web/javax.servlet" to "javaee-api/javax.servlet", since "common" builds
after
"javaee-api", and to avoid any circular dependencies between "common"
and "web".

Does anybody see any issues with moving "web/javax.servlet" to
"javaee-api/javax.servlet"?

Thanks,

Jan