remm 2005/08/01 03:00:59
Modified: jk/java/org/apache/coyote/ajp LocalStrings.properties
AjpAprProtocol.java
Log:
- Internationalization and code cleanups.
- No functional change.
Revision Changes Path
1.5 +2 -1
jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/LocalStrings.properties
Index: LocalStrings.properties
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/LocalStrings.properties,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LocalStrings.properties 1 Aug 2005 09:40:14 -0000 1.4
+++ LocalStrings.properties 1 Aug 2005 10:00:59 -0000 1.5
@@ -22,6 +22,7 @@
ajpprotocol.endpoint.resumeerror=Error resuming endpoint
ajpprotocol.failedread=Socket read failed
ajpprotocol.failedwrite=Socket write failed
+ajpprotocol.request.register=Error registering request processor in JMX
ajpprocessor.header.error=Header message parsing failed
ajpprocessor.request.prepare=Error preparing request
1.7 +145 -86
jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpAprProtocol.java
Index: AjpAprProtocol.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/coyote/ajp/AjpAprProtocol.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AjpAprProtocol.java 26 Jul 2005 16:13:33 -0000 1.6
+++ AjpAprProtocol.java 1 Aug 2005 10:00:59 -0000 1.7
@@ -45,41 +45,98 @@
* @author Remy Maucherat
* @author Costin Manolache
*/
-public class AjpAprProtocol implements ProtocolHandler, MBeanRegistration
-{
+public class AjpAprProtocol
+ implements ProtocolHandler, MBeanRegistration {
+
+
+ protected static org.apache.commons.logging.Log log =
+ org.apache.commons.logging.LogFactory.getLog(AjpAprProtocol.class);
+
+ /**
+ * The string manager for this package.
+ */
+ protected static StringManager sm =
+ StringManager.getManager(Constants.Package);
+
+
+ // ------------------------------------------------------------
Constructor
+
+
public AjpAprProtocol() {
- cHandler = new AjpConnectionHandler( this );
+ cHandler = new AjpConnectionHandler(this);
setSoLinger(Constants.DEFAULT_CONNECTION_LINGER);
setSoTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT);
//setServerSoTimeout(Constants.DEFAULT_SERVER_SOCKET_TIMEOUT);
setTcpNoDelay(Constants.DEFAULT_TCP_NO_DELAY);
}
+
+ // ----------------------------------------------------- Instance
Variables
+
+
+ protected ObjectName tpOname;
+
+
+ protected ObjectName rgOname;
+
+
/**
- * The string manager for this package.
+ * Associated APR endpoint.
*/
- protected static StringManager sm =
- StringManager.getManager(Constants.Package);
+ protected AprEndpoint ep = new AprEndpoint();
- /** Pass config info
+
+ /**
+ * Configuration attributes.
*/
- public void setAttribute( String name, Object value ) {
- if( log.isTraceEnabled())
- log.trace(sm.getString("ajpprotocol.setattribute", name, value));
+ protected Hashtable attributes = new Hashtable();
+
+
+ /**
+ * Should authentication be done in the native webserver layer,
+ * or in the Servlet container ?
+ */
+ protected boolean tomcatAuthentication = true;
+
+ /**
+ * Adapter which will process the requests recieved by this endpoint.
+ */
+ private Adapter adapter;
+
+
+ /**
+ * Connection handler for AJP.
+ */
+ private AjpConnectionHandler cHandler;
+
+
+ // --------------------------------------------------------- Public
Methods
+
+
+ /**
+ * Pass config info
+ */
+ public void setAttribute(String name, Object value) {
+ if (log.isTraceEnabled()) {
+ log.trace(sm.getString("ajpprotocol.setattribute", name, value));
+ }
attributes.put(name, value);
}
- public Object getAttribute( String key ) {
- if( log.isTraceEnabled())
+ public Object getAttribute(String key) {
+ if (log.isTraceEnabled()) {
log.trace(sm.getString("ajpprotocol.getattribute", key));
+ }
return attributes.get(key);
}
+
public Iterator getAttributeNames() {
return attributes.keySet().iterator();
}
+
/**
* Set a property.
*/
@@ -87,19 +144,23 @@
setAttribute(name, value);
}
+
/**
* Get a property
*/
public String getProperty(String name) {
- return (String)getAttribute(name);
+ return (String) getAttribute(name);
}
- /** The adapter, used to call the connector
+
+ /**
+ * The adapter, used to call the connector
*/
public void setAdapter(Adapter adapter) {
- this.adapter=adapter;
+ this.adapter = adapter;
}
+
public Adapter getAdapter() {
return adapter;
}
@@ -112,37 +173,32 @@
ep.setHandler(cHandler);
ep.setUseSendfile(false);
- // XXX get domain from registration
try {
ep.init();
} catch (Exception ex) {
log.error(sm.getString("ajpprotocol.endpoint.initerror"), ex);
throw ex;
}
- if(log.isInfoEnabled())
+ if (log.isInfoEnabled()) {
log.info(sm.getString("ajpprotocol.init", getName()));
-
+ }
}
- ObjectName tpOname;
- ObjectName rgOname;
public void start() throws Exception {
- if( this.domain != null ) {
+ if (this.domain != null ) {
try {
- // XXX We should be able to configure it separately
- // XXX It should be possible to use a single TP
- tpOname=new ObjectName
+ tpOname = new ObjectName
(domain + ":" + "type=ThreadPool,name=" + getName());
Registry.getRegistry(null, null)
- .registerComponent(ep, tpOname, null );
+ .registerComponent(ep, tpOname, null );
} catch (Exception e) {
log.error("Can't register threadpool" );
}
- rgOname=new ObjectName
+ rgOname = new ObjectName
(domain + ":type=GlobalRequestProcessor,name=" + getName());
Registry.getRegistry(null, null).registerComponent
- ( cHandler.global, rgOname, null );
+ (cHandler.global, rgOname, null);
}
try {
@@ -151,7 +207,7 @@
log.error(sm.getString("ajpprotocol.endpoint.starterror"), ex);
throw ex;
}
- if(log.isInfoEnabled())
+ if (log.isInfoEnabled())
log.info(sm.getString("ajpprotocol.start", getName()));
}
@@ -162,7 +218,7 @@
log.error(sm.getString("ajpprotocol.endpoint.pauseerror"), ex);
throw ex;
}
- if(log.isInfoEnabled())
+ if (log.isInfoEnabled())
log.info(sm.getString("ajpprotocol.pause", getName()));
}
@@ -173,89 +229,83 @@
log.error(sm.getString("ajpprotocol.endpoint.resumeerror"), ex);
throw ex;
}
- if(log.isInfoEnabled())
+ if (log.isInfoEnabled())
log.info(sm.getString("ajpprotocol.resume", getName()));
}
public void destroy() throws Exception {
- if(log.isInfoEnabled())
+ if (log.isInfoEnabled())
log.info(sm.getString("ajpprotocol.stop", getName()));
ep.destroy();
- if( tpOname!=null )
+ if (tpOname!=null)
Registry.getRegistry(null, null).unregisterComponent(tpOname);
- if( rgOname != null )
+ if (rgOname != null)
Registry.getRegistry(null, null).unregisterComponent(rgOname);
}
- // -------------------- Properties--------------------
- protected AprEndpoint ep=new AprEndpoint();
- protected boolean secure;
-
- protected Hashtable attributes = new Hashtable();
-
- private int timeout = 300000; // 5 minutes as in Apache HTTPD server
- protected boolean tomcatAuthentication = true;
-
- private Adapter adapter;
- private AjpConnectionHandler cHandler;
-
- // -------------------- Pool setup --------------------
public int getMaxThreads() {
return ep.getMaxThreads();
}
- public void setMaxThreads( int maxThreads ) {
+ public void setMaxThreads(int maxThreads) {
ep.setMaxThreads(maxThreads);
setAttribute("maxThreads", "" + maxThreads);
}
public void setThreadPriority(int threadPriority) {
- ep.setThreadPriority(threadPriority);
- setAttribute("threadPriority", "" + threadPriority);
+ ep.setThreadPriority(threadPriority);
+ setAttribute("threadPriority", "" + threadPriority);
}
-
+
public int getThreadPriority() {
- return ep.getThreadPriority();
+ return ep.getThreadPriority();
}
-
- // -------------------- Tcp setup --------------------
+
public int getBacklog() {
return ep.getBacklog();
}
+
public void setBacklog( int i ) {
ep.setBacklog(i);
setAttribute("backlog", "" + i);
}
+
public int getPort() {
return ep.getPort();
}
+
public void setPort( int port ) {
ep.setPort(port);
setAttribute("port", "" + port);
}
+
public boolean getUseSendfile() {
return ep.getUseSendfile();
}
+
public void setUseSendfile(boolean useSendfile) {
// No sendfile for AJP
}
+
public InetAddress getAddress() {
return ep.getAddress();
}
+
public void setAddress(InetAddress ia) {
- ep.setAddress( ia );
+ ep.setAddress(ia);
setAttribute("address", "" + ia);
}
+
public String getName() {
String encodedAddr = "";
if (getAddress() != null) {
@@ -267,86 +317,93 @@
return ("ajp-" + encodedAddr + ep.getPort());
}
+
public boolean getTcpNoDelay() {
return ep.getTcpNoDelay();
}
- public void setTcpNoDelay( boolean b ) {
- ep.setTcpNoDelay( b );
+
+ public void setTcpNoDelay(boolean b) {
+ ep.setTcpNoDelay(b);
setAttribute("tcpNoDelay", "" + b);
}
+
public boolean getTomcatAuthentication() {
return tomcatAuthentication;
}
+
public void setTomcatAuthentication(boolean tomcatAuthentication) {
this.tomcatAuthentication = tomcatAuthentication;
}
+
public int getFirstReadTimeout() {
return ep.getFirstReadTimeout();
}
- public void setFirstReadTimeout( int i ) {
+
+ public void setFirstReadTimeout(int i) {
ep.setFirstReadTimeout(i);
setAttribute("firstReadTimeout", "" + i);
}
+
public int getPollTime() {
return ep.getPollTime();
}
- public void setPollTime( int i ) {
+
+ public void setPollTime(int i) {
ep.setPollTime(i);
setAttribute("pollTime", "" + i);
}
+
public void setPollerSize(int i) {
ep.setPollerSize(i);
setAttribute("pollerSize", "" + i);
}
-
+
+
public int getPollerSize() {
return ep.getPollerSize();
}
-
+
+
public int getSoLinger() {
return ep.getSoLinger();
}
- public void setSoLinger( int i ) {
- ep.setSoLinger( i );
+
+ public void setSoLinger(int i) {
+ ep.setSoLinger(i);
setAttribute("soLinger", "" + i);
}
+
public int getSoTimeout() {
return ep.getSoTimeout();
}
+
public void setSoTimeout( int i ) {
ep.setSoTimeout(i);
setAttribute("soTimeout", "" + i);
}
- public int getTimeout() {
- return timeout;
- }
-
- public void setTimeout( int timeouts ) {
- timeout = timeouts;
- setAttribute("timeout", "" + timeouts);
- }
+
+ // -------------------------------------- AjpConnectionHandler Inner
Class
- // -------------------- Connection handler --------------------
- static class AjpConnectionHandler implements Handler {
- AjpAprProtocol proto;
- static int count=0;
- RequestGroupInfo global=new RequestGroupInfo();
- ThreadLocal localProcessor = new ThreadLocal();
+ protected static class AjpConnectionHandler implements Handler {
+ protected AjpAprProtocol proto;
+ protected static int count = 0;
+ protected RequestGroupInfo global=new RequestGroupInfo();
+ protected ThreadLocal localProcessor = new ThreadLocal();
- AjpConnectionHandler(AjpAprProtocol proto) {
+ public AjpConnectionHandler(AjpAprProtocol proto) {
this.proto = proto;
}
@@ -362,14 +419,15 @@
if (proto.getDomain() != null) {
synchronized (this) {
try {
- RequestInfo
rp=processor.getRequest().getRequestProcessor();
+ RequestInfo rp =
processor.getRequest().getRequestProcessor();
rp.setGlobalProcessor(global);
- ObjectName rpName=new ObjectName
- (proto.getDomain() +
":type=RequestProcessor,worker="
- + proto.getName()
+",name=AjpRequest" + count++ );
- Registry.getRegistry(null,
null).registerComponent( rp, rpName, null);
- } catch( Exception ex ) {
- log.warn("Error registering request");
+ ObjectName rpName = new ObjectName
+ (proto.getDomain() +
":type=RequestProcessor,worker="
+ + proto.getName() +
",name=AjpRequest" + count++ );
+ Registry.getRegistry(null, null)
+ .registerComponent(rp, rpName, null);
+ } catch (Exception ex) {
+
log.warn(sm.getString("ajpprotocol.request.register"));
}
}
}
@@ -410,11 +468,10 @@
}
}
- protected static org.apache.commons.logging.Log log
- = org.apache.commons.logging.LogFactory.getLog(AjpAprProtocol.class);
// -------------------- Various implementation classes
--------------------
+
protected String domain;
protected ObjectName oname;
protected MBeanServer mserver;
@@ -443,4 +500,6 @@
public void postDeregister() {
}
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]