JBoss Native SVN: r1870 - in trunk/mod_cluster/native: mod_manager and 1 other directories.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-19 08:03:41 -0400 (Fri, 19 Sep 2008)
New Revision: 1870
Modified:
trunk/mod_cluster/native/include/balancer.h
trunk/mod_cluster/native/include/context.h
trunk/mod_cluster/native/include/host.h
trunk/mod_cluster/native/include/node.h
trunk/mod_cluster/native/include/slotmem.h
trunk/mod_cluster/native/mod_manager/balancer.c
trunk/mod_cluster/native/mod_manager/context.c
trunk/mod_cluster/native/mod_manager/host.c
trunk/mod_cluster/native/mod_manager/mod_manager.c
trunk/mod_cluster/native/mod_manager/node.c
trunk/mod_cluster/native/mod_slotmem/sharedmem_util.c
Log:
Make slotmen persistence swichable.
Modified: trunk/mod_cluster/native/include/balancer.h
===================================================================
--- trunk/mod_cluster/native/include/balancer.h 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/include/balancer.h 2008-09-19 12:03:41 UTC (rev 1870)
@@ -123,10 +123,11 @@
* create a shared balancer table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_balancer(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage);
+mem_t * create_mem_balancer(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage);
/**
* provider for the mod_proxy_cluster or mod_jk modules.
Modified: trunk/mod_cluster/native/include/context.h
===================================================================
--- trunk/mod_cluster/native/include/context.h 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/include/context.h 2008-09-19 12:03:41 UTC (rev 1870)
@@ -125,10 +125,11 @@
* create a shared context table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_context(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage);
+mem_t * create_mem_context(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage);
/**
* provider for the mod_proxy_cluster or mod_jk modules.
Modified: trunk/mod_cluster/native/include/host.h
===================================================================
--- trunk/mod_cluster/native/include/host.h 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/include/host.h 2008-09-19 12:03:41 UTC (rev 1870)
@@ -118,10 +118,11 @@
* create a shared host table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_host(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage);
+mem_t * create_mem_host(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage);
/**
* provider for the mod_proxy_cluster or mod_jk modules.
Modified: trunk/mod_cluster/native/include/node.h
===================================================================
--- trunk/mod_cluster/native/include/node.h 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/include/node.h 2008-09-19 12:03:41 UTC (rev 1870)
@@ -144,10 +144,11 @@
* create a shared node table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_node(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage);
+mem_t * create_mem_node(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage);
/**
* provider for the mod_proxy_cluster or mod_jk modules.
Modified: trunk/mod_cluster/native/include/slotmem.h
===================================================================
--- trunk/mod_cluster/native/include/slotmem.h 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/include/slotmem.h 2008-09-19 12:03:41 UTC (rev 1870)
@@ -46,6 +46,10 @@
#define SLOTMEM_STORAGE "slotmem"
+#define ATTACH_SLOTMEM 0 /* Attach to existing slotmem */
+#define CREATE_SLOTMEM 1 /* create a not persistent slotmem */
+#define CREPER_SLOTMEM 2 /* create a persisitent slotmem */
+
typedef struct ap_slotmem ap_slotmem_t;
/**
@@ -76,10 +80,11 @@
* @param name is a key used for debugging and in mod_status output or allow another process to share this space.
* @param item_size size of each item
* @param item_num number of item to create.
+ * @param persistent indicator to know if the data should be persisted or not.
* @param pool is pool used to create scoreboard
* @return APR_SUCCESS if all went well
*/
-apr_status_t (* ap_slotmem_create)(ap_slotmem_t **new, const char *name, apr_size_t item_size, int item_num, apr_pool_t *pool);
+apr_status_t (* ap_slotmem_create)(ap_slotmem_t **new, const char *name, apr_size_t item_size, int item_num, int persistent, apr_pool_t *pool);
/**
* attach to an existing slotmem.
Modified: trunk/mod_cluster/native/mod_manager/balancer.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/balancer.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_manager/balancer.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -61,7 +61,7 @@
ptr->storage = storage;
storename = apr_pstrcat(p, string, BALANCEREXE, NULL);
if (type)
- rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(balancerinfo_t), *num, p);
+ rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(balancerinfo_t), *num, type, p);
else {
apr_size_t size = sizeof(balancerinfo_t);
rv = ptr->storage->ap_slotmem_attach(&ptr->slotmem, storename, &size, num, p);
@@ -217,11 +217,12 @@
* create a shared balancer table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @param storage slotmem logic provider.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_balancer(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage)
+mem_t * create_mem_balancer(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage)
{
- return(create_attach_mem_balancer(string, num, 1, p, storage));
+ return(create_attach_mem_balancer(string, num, CREATE_SLOTMEM|persist, p, storage));
}
Modified: trunk/mod_cluster/native/mod_manager/context.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/context.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_manager/context.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -61,7 +61,7 @@
ptr->storage = storage;
storename = apr_pstrcat(p, string, CONTEXTEXE, NULL);
if (type)
- rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(contextinfo_t), *num, p);
+ rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(contextinfo_t), *num, type, p);
else {
apr_size_t size = sizeof(contextinfo_t);
rv = ptr->storage->ap_slotmem_attach(&ptr->slotmem, storename, &size, num, p);
@@ -218,11 +218,12 @@
* create a shared context table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @param storage slotmem logic provider.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_context(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage)
+mem_t * create_mem_context(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage)
{
- return(create_attach_mem_context(string, num, 1, p, storage));
+ return(create_attach_mem_context(string, num, CREATE_SLOTMEM|persist, p, storage));
}
Modified: trunk/mod_cluster/native/mod_manager/host.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/host.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_manager/host.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -61,7 +61,7 @@
ptr->storage = storage;
storename = apr_pstrcat(p, string, HOSTEXE, NULL);
if (type)
- rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(hostinfo_t), *num, p);
+ rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(hostinfo_t), *num, type, p);
else {
apr_size_t size = sizeof(hostinfo_t);
rv = ptr->storage->ap_slotmem_attach(&ptr->slotmem, storename, &size, num, p);
@@ -216,10 +216,11 @@
* create a shared host table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_host(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage)
+mem_t * create_mem_host(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage)
{
- return(create_attach_mem_host(string, num, 1, p, storage));
+ return(create_attach_mem_host(string, num, CREATE_SLOTMEM|persist, p, storage));
}
Modified: trunk/mod_cluster/native/mod_manager/mod_manager.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -289,30 +289,29 @@
/* Get a provider to handle the shared memory */
storage = ap_lookup_provider(SLOTMEM_STORAGE, "shared", "0");
- // storage->persistent = 0;
if (storage == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "ap_lookup_provider %s failed", SLOTMEM_STORAGE);
return !OK;
}
- nodestatsmem = create_mem_node(node, &mconf->maxnode, p, storage);
+ nodestatsmem = create_mem_node(node, &mconf->maxnode, mconf->persistent, p, storage);
if (nodestatsmem == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "create_mem_node %s failed", node);
return !OK;
}
- contextstatsmem = create_mem_context(context, &mconf->maxcontext, p, storage);
+ contextstatsmem = create_mem_context(context, &mconf->maxcontext, mconf->persistent, p, storage);
if (contextstatsmem == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "create_mem_context failed");
return !OK;
}
- hoststatsmem = create_mem_host(host, &mconf->maxhost, p, storage);
+ hoststatsmem = create_mem_host(host, &mconf->maxhost, mconf->persistent, p, storage);
if (hoststatsmem == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "create_mem_host failed");
return !OK;
}
- balancerstatsmem = create_mem_balancer(balancer, &mconf->maxhost, p, storage);
+ balancerstatsmem = create_mem_balancer(balancer, &mconf->maxhost, mconf->persistent, p, storage);
if (balancerstatsmem == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "create_mem_balancer failed");
return !OK;
@@ -1266,7 +1265,7 @@
if (strcasecmp(arg, "Off") == 0)
mconf->persistent = 0;
else if (strcasecmp(arg, "On") == 0)
- mconf->persistent = 1;
+ mconf->persistent = CREPER_SLOTMEM;
else {
return "PersistSlots must be one of: "
"off | on";
Modified: trunk/mod_cluster/native/mod_manager/node.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/node.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_manager/node.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -60,9 +60,9 @@
}
ptr->storage = storage;
storename = apr_pstrcat(p, string, NODEEXE, NULL);
- if (type)
- rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(nodeinfo_t), *num, p);
- else {
+ if (type) {
+ rv = ptr->storage->ap_slotmem_create(&ptr->slotmem, storename, sizeof(nodeinfo_t), *num, type, p);
+ } else {
apr_size_t size = sizeof(nodeinfo_t);
rv = ptr->storage->ap_slotmem_attach(&ptr->slotmem, storename, &size, num, p);
}
@@ -232,11 +232,12 @@
* create a shared node table
* @param name to use to create the table.
* @param size of the shared table.
+ * @param persist tell if the slotmem element are persistent.
* @param p pool to use for allocations.
* @param storage slotmem logic provider.
* @return address of struct used to access the table.
*/
-mem_t * create_mem_node(char *string, int *num, apr_pool_t *p, slotmem_storage_method *storage)
+mem_t * create_mem_node(char *string, int *num, int persist, apr_pool_t *p, slotmem_storage_method *storage)
{
- return(create_attach_mem_node(string, num, 1, p, storage));
+ return(create_attach_mem_node(string, num, CREATE_SLOTMEM|persist, p, storage));
}
Modified: trunk/mod_cluster/native/mod_slotmem/sharedmem_util.c
===================================================================
--- trunk/mod_cluster/native/mod_slotmem/sharedmem_util.c 2008-09-19 08:30:21 UTC (rev 1869)
+++ trunk/mod_cluster/native/mod_slotmem/sharedmem_util.c 2008-09-19 12:03:41 UTC (rev 1870)
@@ -216,7 +216,7 @@
}
return APR_NOTFOUND;
}
-static apr_status_t ap_slotmem_create(ap_slotmem_t **new, const char *name, apr_size_t item_size, int item_num, apr_pool_t *pool)
+static apr_status_t ap_slotmem_create(ap_slotmem_t **new, const char *name, apr_size_t item_size, int item_num, int persist, apr_pool_t *pool)
{
char *ptr;
struct sharedslotdesc desc;
@@ -307,7 +307,8 @@
/* clean the slots table */
memset(ptr + sizeof(int) * (item_num + 1), 0, item_size * item_num);
/* try to restore the _whole_ stuff from a persisted location */
- restore_slotmem(ptr, fname, item_size, item_num, pool);
+ if (persist & CREPER_SLOTMEM)
+ restore_slotmem(ptr, fname, item_size, item_num, pool);
}
/* create the lock */
15 years, 7 months
JBoss Native SVN: r1869 - trunk/mod_cluster/test/java.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-19 04:30:21 -0400 (Fri, 19 Sep 2008)
New Revision: 1869
Added:
trunk/mod_cluster/test/java/installhttpd.sh
Log:
Script to modify the mod_cluster bundle to run with the tests.
Added: trunk/mod_cluster/test/java/installhttpd.sh
===================================================================
--- trunk/mod_cluster/test/java/installhttpd.sh (rev 0)
+++ trunk/mod_cluster/test/java/installhttpd.sh 2008-09-19 08:30:21 UTC (rev 1869)
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# Script to install httpd in $HOME and configure it for mod_cluster tests.
+files="opt/jboss/httpd/sbin/apachectl opt/jboss/httpd/httpd/conf/httpd.conf /opt/jboss/httpd/sbin/envvars"
+for FILE in `echo $files`
+do
+ file=${HOME}/$FILE
+ echo "$file"
+ cp -p $file $file.new
+ sed "s:opt/jboss/httpd:${HOME}/opt/jboss/httpd:" $file > $file.new
+ mv $file $file.`date +%y%m%d.%H%M%S`.org
+ mv $file.new $file
+done
+# Arrange apachectl
+file=$HOME/opt/jboss/httpd/sbin/apachectl
+cp -p $file $file.new
+echo "s:\$HTTPD -k \$ARGV:\$HTTPD -k \$ARGV -d ${HOME}/opt/jboss/httpd/httpd:" > sed.cmd
+sed -f sed.cmd $file > $file.new
+mv $file $file.`date +%y%m%d.%H%M%S`.1.org
+mv $file.new $file
+
+# Arrange httpd.conf
+file=$HOME/opt/jboss/httpd/httpd/conf/httpd.conf
+cp -p $file $file.new
+echo "s:Listen 80:Listen 8000:" > sed.cmd
+sed -f sed.cmd $file > $file.new
+cat >> $file.new <<EOF
+<IfModule manager_module>
+ Listen file:6666
+ ManagerBalancerName mycluster
+ <VirtualHost file:6666>
+ <Directory />
+ Order deny,allow
+ Deny from all
+ allow from 10.33.144
+ </Directory>
+
+ KeepAliveTimeout 300
+ MaxKeepAliveRequests 0
+ AdvertiseFrequency 5
+ </VirtualHost>
+</IfModule>
+EOF
+mv $file $file.`date +%y%m%d.%H%M%S`.1.org
+mv $file.new $file
15 years, 7 months
JBoss Native SVN: r1868 - in trunk/mod_cluster: src/test and 8 other directories.
by jbossnative-commits@lists.jboss.org
Author: pferraro
Date: 2008-09-18 18:55:29 -0400 (Thu, 18 Sep 2008)
New Revision: 1868
Added:
trunk/mod_cluster/build-test.xml
trunk/mod_cluster/local.properties
trunk/mod_cluster/src/test/resources/
trunk/mod_cluster/src/test/resources/test-configs/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/conf/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/conf/mod-cluster-httpd.conf
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/modules/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/META-INF/
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/META-INF/jboss-beans.xml
trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/server.xml
trunk/mod_cluster/test-jars.xml
Modified:
trunk/mod_cluster/pom.xml
Log:
Modifications from Brian to support integration testing
Added: trunk/mod_cluster/build-test.xml
===================================================================
--- trunk/mod_cluster/build-test.xml (rev 0)
+++ trunk/mod_cluster/build-test.xml 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--======================================================================-->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- -->
+<!--======================================================================-->
+<project default="main" name="JBoss/mod_cluster Tests" xmlns:server="http://jboss.org/ns/test/ant/server">
+
+ <!-- ======================================================== -->
+ <!-- Initialization -->
+ <!-- ======================================================== -->
+ <tstamp>
+ <format property="TIMENOW" pattern="yyyy-MM-dd.HH-mm" timezone="GMT" />
+ </tstamp>
+ <echo message="${TIMENOW}" file="run.tstamp" />
+
+ <!-- =================== -->
+ <!-- Basic Configuration -->
+ <!-- =================== -->
+
+ <property name="results_web" value="http://jboss.sourceforge.net/junit-results/32" />
+ <property name="buildlog.level" value="info" />
+ <property environment="env" />
+
+ <!--
+ Set a hostname property based on COMPUTERNAME for win32, HOSTNAME
+ otherwise and initialize the node0/node1 cluster hostnames to
+ localhost and ${hostname} by default. If you cannot route multicast
+ traffic between localhost and hostname, then you need to specify node0
+ and node1 binding in the local.properties that can in order to be able
+ to run the clustering tests.
+ -->
+ <condition property="hostname" value="${env.COMPUTERNAME}">
+ <os family="windows" />
+ </condition>
+ <condition property="hostname" value="${env.HOSTNAME}">
+ <not>
+ <os family="windows" />
+ </not>
+ </condition>
+
+ <!--
+ We will use local.properties file to provide some configuration to the
+ testsuite mainly for the Clustering framework. Please do not checkin
+ your local.properties file into CVS
+ -->
+ <property file="local.properties" />
+
+ <!-- Cluster node defaults -->
+ <property name="node0" value="localhost" />
+ <property name="node0.http.url" value="http://${node0}:8080" />
+ <property name="node0.jndi.url" value="jnp://${node0}:1099" />
+ <property name="node0.jndi.port1.url" value="jnp://${node0}:1199" />
+ <property name="node0.http.port1.url" value="http://${node0}:8180" />
+ <property name="node0.jgroups.bind_addr" value="${node0}" />
+ <property name="node1" value="${hostname}" />
+ <property name="node1.http.url" value="http://${node1}:8080" />
+ <property name="node1.jndi.url" value="jnp://${node1}:1099" />
+ <property name="node1.jgroups.bind_addr" value="${node1}" />
+ <property name="node2" value="${env.MYTESTIP_3}" />
+ <property name="node2.http.url" value="http://${node2}:8080" />
+ <property name="node2.jndi.url" value="jnp://${node2}:1099" />
+ <property name="node2.jgroups.bind_addr" value="${node2}" />
+ <property name="node3" value="${env.MYTESTIP_4}" />
+ <property name="node3.http.url" value="http://${node3}:8080" />
+ <property name="node3.jndi.url" value="jnp://${node3}:1099" />
+ <property name="node3.jgroups.bind_addr" value="${node3}" />
+
+ <!-- UDP Group, must be done before server-config.xml -->
+ <!-- The value of the -u option passed to jboss -->
+ <!-- A blank value will prevent the -u option from being passed -->
+ <!--
+ Override this in the local.properties or pass to Ant as
+ -DupdGroup=128.x.x.x
+ -->
+ <property name="udpGroup" value="" />
+ <!-- Same thing, but passed to the client -->
+ <property name="jbosstest.udpGroup" value="${udpGroup}" />
+
+ <!-- Set "jboss.dist" to JBOSS_HOME -->
+ <property name="jboss.dist" value="${env.JBOSS_HOME}" />
+
+ <!-- Propagate the dist directory as a jbosstest system property -->
+ <property name="jbosstest.dist" value="${jboss.dist}" />
+
+ <!-- Externalized locations -->
+ <property name="location.resources.main" value="${basedir}/src/main/resources" />
+ <property name="location.resources.test" value="${basedir}/src/test/resources" />
+ <property name="location.target" value="${basedir}/target" />
+ <property name="location.artifact.tests" value="${location.target}/jboss-ejb3-testsuite-tests.jar" />
+ <property name="location.dependencies" value="${location.target}/dependencies" />
+ <property name="location.dependencies.unpacked" value="${location.dependencies}/unpacked" />
+ <property name="location.dependencies.unpacked.jboss-test:jboss.test" value="${location.dependencies.unpacked}/jboss-test" />
+ <property name="location.dependencies.lib" value="${location.dependencies}/lib" />
+ <property name="location.dependencies.lib.jboss-test:jboss-test" value="${location.dependencies.lib}/jboss-test.jar" />
+ <property name="location.dependencies.lib.org.jboss.jbossas:server-manager" value="${location.dependencies.lib}/jboss-server-manager.jar" />
+ <property name="location.dependencies.lib.junit:junit" value="${location.dependencies.lib}/junit.jar" />
+ <property name="location.dependencies.lib.apache-httpclient:commons-httpclient" value="${location.dependencies.lib}/commons-httpclient.jar" />
+ <property name="location.client.lib" value="${jboss.dist}/client"/>
+ <property name="location.apache.httpd" value="/usr/sbin"/>
+ <property name="location.apache.serverroot" value="${user.home}/httpd"/>
+ <property name="location.apache.config" value="conf/mod-cluster-httpd.conf"/>
+
+ <!-- Import the jboss server run targets -->
+ <import file="${location.dependencies.unpacked.jboss-test:jboss.test}/server-config.xml" />
+
+ <!-- Module name(s) & version -->
+ <property name="module.name" value="ejb3" />
+ <property name="module.Name" value="JBoss Testsuite" />
+ <property name="module.version" value="DEV" />
+ <property name="module.source" value="${basedir}/src" />
+ <property name="module.output" value="${basedir}/target" />
+
+ <!-- Where source files live -->
+ <property name="source.resources" value="${module.source}/test/resources"/>
+
+ <!-- Where build generated files will go -->
+ <property name="build.classes" value="${module.output}/classes"/>
+ <property name="build.lib" value="${module.output}/lib"/>
+ <property name="build.resources" value="${module.output}/resources"/>
+ <property name="build.reports" value="${module.output}/reports"/>
+ <property name="build.testlog" value="${module.output}/log"/>
+
+ <!-- Define common JVM Arguments for all mod-cluster JBossAS Runtimes -->
+ <property name="mod_cluster.jboss.jvmargs"
+ value="-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Djava.net.preferIPv4Stack=true -Dresolve.dns=false" />
+
+ <property name="junit.timeout" value="300000"/>
+
+ <!--
+ Define Server Configurations for mod_cluster Integration Tests
+ -->
+ <server:config javaHome="${env.JAVA_HOME}" jbossHome="${jboss.dist}"
+ udpGroup="${udpGroup}">
+
+ <server name="mod-cluster-0" host="${node0}">
+ <jvmarg value="${mod_cluster.jboss.jvmargs}" />
+ <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+ <sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
+ <sysproperty key="jboss.messaging.ServerPeerID" value="0" />
+ </server>
+
+ <server name="mod-cluster-1" host="${node1}">
+ <jvmarg value="${mod_cluster.jboss.jvmargs}" />
+ <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+ <sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
+ <sysproperty key="jboss.messaging.ServerPeerID" value="1" />
+ </server>
+
+ <server name="mod-cluster-2" host="${node2}">
+ <jvmarg value="${mod_cluster.jboss.jvmargs}" />
+ <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+ <sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
+ <sysproperty key="jboss.messaging.ServerPeerID" value="2" />
+ </server>
+
+ <server name="mod-cluster-3" host="${node3}">
+ <jvmarg value="${mod_cluster.jboss.jvmargs}" />
+ <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+ <sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
+ <sysproperty key="jboss.messaging.ServerPeerID" value="3" />
+ </server>
+
+ </server:config>
+
+ <!-- ===================== -->
+ <!-- Paths and Patternsets -->
+ <!-- ===================== -->
+
+ <!-- Define test Classpath -->
+ <path id="jboss.test.classpath">
+ <pathelement path="${jboss.test.path}" />
+ </path>
+
+ <!-- Classpath used by the Test Client -->
+ <path id="client.classpath">
+
+ <!-- JBoss Client Binaries -->
+
+ </path>
+
+ <!--
+ Define the Path to Server Task Definitions, used by the JBoss Server
+ Run targets
+ -->
+ <path id="server.taskdef.classpath">
+ <pathelement path="${location.dependencies.lib.jboss-test:jboss-test}" />
+ <pathelement
+ path="${location.dependencies.lib.org.jboss.jbossas:server-manager}" />
+ </path>
+
+ <patternset id="jboss.server.all.includes">
+ <include name="conf/**" />
+ <include name="deploy/**" />
+ <include name="deployers/**" />
+ <include name="deploy-hasingleton/**" />
+ <include name="lib/**" />
+ </patternset>
+
+ <!-- Define the test pattern sets Here -->
+ <patternset id="apache.integration.test.includes">
+ <include name="org/jboss/modcluster/test/*TestCase.class" />
+ </patternset>
+
+ <!-- Add exclude elements for any tests that should be excluded -->
+ <patternset id="badtest.excludes"/>
+
+ <!-- ============================================== -->
+ <!-- Macros -->
+ <!-- ============================================== -->
+
+ <macrodef name="httpd">
+ <attribute name="location" default="/usr/sbin"/>
+ <attribute name="action-type" default="start"/>
+ <attribute name="server-root"/>
+ <attribute name="config" default="conf/mod-cluster-httpd.conf"/>
+ <attribute name="failonerror" default="true"/>
+
+ <sequential>
+ <echo message="Will @{action-type} the apache instance at @{location} using -d @{server-root} -f @{config}"/>
+ <echo message="If you need apache to run on port 80, then"/>
+ <echo message="you need to start apache with admin/root rights."/>
+ <echo message="If so, start/stop apache independent of this testsuite"/>
+ <exec executable="@{location}/httpd"
+ failonerror="@{failonerror}" failifexecutionfails="@{failonerror}">
+ <arg value="-k"/>
+ <arg value="@{action-type}"/>
+ <arg value="-d"/>
+ <arg value="@{server-root}"/>
+ <arg value="-f"/>
+ <arg value="@{config}"/>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="create-httpd">
+ <attribute name="server-root" description="the httpd serverroot to which newconf-src should be copied"/>
+ <attribute name="newconf-src" description="The name of the tests-config to copy"/>
+ <sequential>
+ <echo message="Updating httpd config at @{server-root}" />
+ <copy todir="@{server-root}" overwrite="true" failonerror="false">
+ <fileset dir="${build.resources}/test-configs/@{newconf-src}" />
+ </copy>
+ </sequential>
+ </macrodef>
+
+ <!-- ============================================== -->
+ <!-- Targets -->
+ <!-- ============================================== -->
+
+ <!-- Import the test jars build targets -->
+ <import file="test-jars.xml"/>
+
+ <!-- "main" is the default target; depends on "jars" which is imported
+ from test-jars.xml -->
+ <target name="main"
+ description="Executes the default target (jars)."
+ depends="jars"/>
+
+ <target name="init">
+ <record name="${basedir}/build.log" append="yes" action="start" loglevel="error"/>
+ </target>
+
+ <!-- Compile resource files -->
+ <target name="compile-resources">
+ <mkdir dir="${build.resources}"/>
+ <copy todir="${build.resources}" filtering="no">
+ <fileset dir="${source.resources}">
+ <include name="**/*"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="tests-apache-integration"
+ description="Execute integration tests requiring an apache load balanced two JBoss nodes.">
+
+ <!-- Determine whether we are configured to ignore failures and
+ pass the appropriate property to tests-clustering-junit.
+ One property we check below and fail the build; the other is ignored.
+ -->
+ <condition property="apache.integration.junit.failure.property"
+ value="apache.integration.junit.failure"
+ else="apache.integration.junit.failure.ignored">
+ <and>
+ <isset property="ignore.integration.test.failures"/>
+ <equals arg1="${ignore.integration.test.failures}" arg2="true" casesensitive="false" trim="true"/>
+ </and>
+ </condition>
+
+ <echo message="Setting up httpd config in ${location.apache.serverroot}"/>
+ <create-httpd server-root="${location.apache.serverroot}" newconf-src="mod-cluster-httpd"/>
+
+ <create-config baseconf="all" newconf="mod-cluster-0" newconf-src="mod-cluster-jbossas">
+ <patternset id="jboss.server.all.includes">
+ <include name="conf/**" />
+ <include name="deploy/**" />
+ <include name="deployers/**" />
+ <include name="deploy-hasingleton/**" />
+ <include name="lib/**" />
+ </patternset>
+ </create-config>
+
+ <create-config baseconf="all" newconf="mod-cluster-1" newconf-src="mod-cluster-jbossas">
+ <patternset id="jboss.server.all.includes">
+ <include name="conf/**" />
+ <include name="deploy/**" />
+ <include name="deployers/**" />
+ <include name="deploy-hasingleton/**" />
+ <include name="lib/**" />
+ </patternset>
+ </create-config>
+
+ <httpd location="${location.apache.httpd}" server-root="${location.apache.serverroot}"
+ config="${location.apache.config}" action-type="start" />
+
+
+ <server:start name="mod-cluster-0" />
+ <server:start name="mod-cluster-1" />
+
+ <echo message="Nodes have started, waiting for cluster to stablize..." />
+
+ <echo message="Going to call target tests-clustering-unit" />
+
+ <antcall target="tests-clustering-unit">
+ <param name="cluster.includes.refid" value="apache.integration.test.includes" />
+ <param name="jboss-junit-configuration" value="ModCluster" />
+ <param name="tests-clustering-unit.failure.property" value="${apache.integration.junit.failure.property}"/>
+ </antcall>
+
+ <server:stop name="mod-cluster-0" />
+ <server:stop name="mod-cluster-1" />
+
+ <httpd location="${location.apache.httpd}" server-root="${location.apache.serverroot}"
+ config="${location.apache.config}" action-type="stop" />
+
+ <!-- See if junit set the failure property that triggers build failure -->
+ <fail message="JUnit tests failed; see test reports for details" if="apache.integration.junit.failure"/>
+
+ </target>
+
+ <!-- Executes a set of tests in a clustered environment -->
+ <target name="tests-clustering-unit">
+
+ <mkdir dir="${build.reports}" />
+ <mkdir dir="${build.testlog}" />
+ <junit dir="${module.output}" printsummary="on"
+ haltonerror="false" haltonfailure="false"
+ fork="true"
+ timeout="${junit.timeout}"
+ failureProperty="${tests-clustering-unit.failure.property}">
+
+ <sysproperty key="java.net.preferIPv4Stack" value="true" />
+
+ <sysproperty key="jboss.internal-server.serverroot"
+ value="${jboss.dist}/server" />
+ <sysproperty key="jbosstest.deploy.dir" file="${build.lib}" />
+ <sysproperty key="jbosstest.cluster.node0" value="${node0}" />
+ <sysproperty key="jbosstest.cluster.node0.http.url"
+ value="${node0.http.url}" />
+ <sysproperty key="jbosstest.cluster.node0.jndi.url"
+ value="${node0.jndi.url}" />
+ <sysproperty key="jbosstest.cluster.node0.serverroot"
+ value="${jboss.dist}/server/${jbosstest.cluster.node0.config}" />
+ <sysproperty key="jbosstest.cluster.node1" value="${node1}" />
+ <sysproperty key="jbosstest.cluster.node1.http.url"
+ value="${node1.http.url}" />
+ <sysproperty key="jbosstest.cluster.node1.jndi.url"
+ value="${node1.jndi.url}" />
+ <sysproperty key="jbosstest.cluster.node1.serverroot"
+ value="${jboss.dist}/server/${jbosstest.cluster.node1.config}" />
+ <sysproperty key="build.testlog" value="${build.testlog}" />
+ <sysproperty key="log4j.configuration" value="file:${build.resources}/log4j.xml" />
+ <!-- Pass along any jbosstest.* system properties -->
+ <syspropertyset>
+ <propertyref prefix="jbosstest." />
+ </syspropertyset>
+
+ <!--
+ Lets pass some parameters from local.properties file as system
+ properties
+ -->
+ <syspropertyset>
+ <propertyref prefix="org.apache." />
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="apache" />
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="node" />
+ </syspropertyset>
+
+ <!--
+ jvmarg value="${junit.jvm.options}"/> <jvmarg
+ value="-Xrunjdwp:transport=dt_socket,address=8789,server=y,suspend=y"/>
+ <jvmarg value="-Djava.compiler=NONE"/> <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xnoagent"/
+ -->
+
+ <classpath>
+ <pathelement location="${build.classes}" />
+ <pathelement location="${build.resources}" />
+ <path refid="tests.classpath" />
+ </classpath>
+
+ <!--
+ definition of the property for keeping results between configuration
+ -->
+ <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}" />
+ <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
+ usefile="${junit.formatter.usefile}" extension="-${jboss-junit-configuration}.xml" />
+
+ <batchtest todir="${build.reports}" haltonerror="false"
+ haltonfailure="false" fork="true">
+
+ <fileset dir="${build.classes}">
+ <patternset refid="${cluster.includes.refid}" />
+ <patternset refid="badtest.excludes" />
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <!-- Launches a test assuming the AS instances are already running -->
+ <target name="one-cluster-test-nostart" if="test">
+
+ <property name="jboss-junit-configuration" value="ModCluster" />
+
+ <echo message="Going to call target tests-clustering-unit for ${test}" />
+
+ <antcall target="tests-clustering-unit">
+ <param name="cluster.includes.refid" value="one.test.includes" />
+ <param name="jboss-junit-configuration" value="${jboss-junit-configuration}" />
+ <param name="jbosstest.cluster.web.cache.config" value="standard-session-cache" />
+ <param name="jbosstest.cluster.node0.config" value="mod-cluster-0" />
+ <param name="jbosstest.cluster.node1.config" value="mod-cluster-1" />
+ </antcall>
+
+ </target>
+
+</project>
\ No newline at end of file
Added: trunk/mod_cluster/local.properties
===================================================================
--- trunk/mod_cluster/local.properties (rev 0)
+++ trunk/mod_cluster/local.properties 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,84 @@
+#IMPORTANT:- Please do not check this file into CVS with your local changes
+#This file is used to pass config info to targets like apache_tomcat-clustering tests
+#Please uncomment or add your properties to this file.
+
+# $Id: local.properties 72339 2008-04-17 11:38:28Z adrian(a)jboss.org $
+
+### General compiler configuration ###
+
+# Use the jikes compiler
+#build.compiler=jikes
+
+# Use the eclipse compiler to allow for hot code swapping
+# http://www.jboss.org/index.html?module=bb&op=viewtopic&t=65783
+#
+# Make sure you have these jars in tools/lib
+#
+# org.eclipse.jdt.core_3.1.0.jar
+# jdtCompilerAdapter.jar (is contained in org.eclipse.jdt.core_3.1.0.jar)
+#
+#build.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
+
+javac.optimize=false
+javac.debug=true
+javac.depend=false
+javac.verbose=false
+javac.deprecation=false
+javac.include.ant.runtime=true
+javac.include.java.runtime=false
+javac.fail.onerror=true
+
+junit.showoutput=true
+
+rmic.verify=true
+rmic.iiop=false
+rmic.iiopopts=
+rmic.idl=
+rmic.idlops=
+rmic.debug=true
+
+# Location of the httpd binary and the httpd serverroot
+#location.apache.httpd=/usr/sbin
+#location.apache.serverroot=${user.home}/httpd
+#location.apache.config=conf/mod-cluster-httpd.conf
+
+# Location of JBoss
+jboss.dist=${env.JBOSS_HOME}
+
+#
+# Both node0 and node1 properties are needed to run clustering tests.
+# e.g., tests-clustering. Note that you will need to have two separate ips
+# (even at the same machine). Actually what we needed are just node0 and node1
+# ips and the rest are optional.
+#
+#node0=${env.MYTESTIP_1}
+#node0.http.url=http://192.168.1.103:8080
+#node0.jndiurl=jnp://192.168.1.103:1099
+#node0.hajndi.url=jnp://192.168.1.103:1100
+
+#node1=${env.MYTESTIP_2}
+#node1.http.url=http://192.168.1.113:8080
+#node1.jndiurl=jnp://192.168.1.113:1099
+#node1.hajndi.url=jnp://192.168.1.113:1100
+
+# Set this to partition your testsuite runs
+# from others on the network.
+#udpGroup=${env.MY_UDP_GROUP}
+
+# In tests involving multicast, multicast packets by default have a TTL
+# of 0. Uncomment to set this to 1 if you find 0 prevents proper multicast
+# communication on your machine
+#jbosstest.udp.ip_ttl=1
+
+# Some DTM tests (e.g., dtm-tests) bring four JBoss instances up in order
+# to test transactions distributed across multiple servers. Those tests
+# need all four properties node0, node1, node2, and node3. Note that you
+# will need to have four separate ips (even at the same machine).
+node2=${env.MYTESTIP_3}
+node3=${env.MYTESTIP_4}
+
+#The following properties will reduce verbosity of Apache Commons HttpClient
+#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+#org.apache.commons.logging.simplelog.showdatetime=true
+#org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug
+#org.apache.commons.logging.simplelog.log.httpclient.wire.header=error
Modified: trunk/mod_cluster/pom.xml
===================================================================
--- trunk/mod_cluster/pom.xml 2008-09-18 16:25:08 UTC (rev 1867)
+++ trunk/mod_cluster/pom.xml 2008-09-18 22:55:29 UTC (rev 1868)
@@ -9,7 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.native</groupId>
- <artifactId>mod_cluster</artifactId>
+ <artifactId>mod-cluster</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name></name>
<description></description>
@@ -38,6 +38,11 @@
<includes>
<include>**/*TestCase.java</include>
</includes>
+ <!-- Integration tests are in the "test" package; don't
+ run those during the normal surefire run -->
+ <excludes>
+ <exclude>**/test/**/*.java</exclude>
+ </excludes>
</configuration>
</plugin>
<plugin>
@@ -46,7 +51,88 @@
<tagBase>https://svn.jboss.org/repos/jbossnative/tags/mod_cluster</tagBase>
</configuration>
</plugin>
+
+ <!-- Dependency Plugin Configuration -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+
+ <!-- Unpack requisite build scripts -->
+ <execution>
+ <id>unpack-build-scripts</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ </artifactItem>
+ </artifactItems>
+ <outputDirectory>${project.build.directory}/dependencies/unpacked/jboss-test</outputDirectory>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+
+ <!-- Copy jboss-test JAR -->
+ <execution>
+ <id>copy-jboss-test</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-server-manager</artifactId>
+ </artifactItem>
+ </artifactItems>
+ <outputDirectory>${project.build.directory}/dependencies/lib</outputDirectory>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <stripVersion>true</stripVersion>
+ </configuration>
+ </execution>
+
+ </executions>
+ </plugin>
+
+ <!-- JAR the Tests -->
+ <!-- TODO: Instead of passing of the build directory, this jar is passed to junit. Why? -->
+ <!-- BES: I copied this from ejb3/testsuite/pom.xml but am commenting it
+ out until I see a requirement for it
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ -->
+
</plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.2</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
</build>
<dependencies>
@@ -93,6 +179,72 @@
<version>2.5</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ <version>1.1.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>3.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-server-manager</artifactId>
+ <version>0.1.0.GA</version>
+ </dependency>
+
</dependencies>
-</project>
\ No newline at end of file
+ <profiles>
+ <profile>
+ <id>integration-test</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <property>
+ <name>maven.run.integration.tests</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <build>
+ <plugins>
+ <!-- The individual integration tests are built and run using Ant -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build-tests</id>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <phase>integration-test</phase>
+ <configuration>
+ <tasks>
+
+ <!-- Execute the Test Build -->
+ <ant antfile="build-test.xml" target="main" />
+
+ <!-- Execute the integration tests that require httpd -->
+ <ant antfile="build-test.xml" target="tests-apache-integration" />
+
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added: trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/conf/mod-cluster-httpd.conf
===================================================================
--- trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/conf/mod-cluster-httpd.conf (rev 0)
+++ trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-httpd/conf/mod-cluster-httpd.conf 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,990 @@
+#
+# This is the main Apache server configuration file. It contains the
+# configuration directives that give the server its instructions.
+# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
+# In particular, see
+# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
+# for a discussion of each configuration directive.
+#
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+# The configuration directives are grouped into three basic sections:
+# 1. Directives that control the operation of the Apache server process as a
+# whole (the 'global environment').
+# 2. Directives that define the parameters of the 'main' or 'default' server,
+# which responds to requests that aren't handled by a virtual host.
+# These directives also provide default values for the settings
+# of all virtual hosts.
+# 3. Settings for virtual hosts, which allow Web requests to be sent to
+# different IP addresses or hostnames and have them handled by the
+# same Apache server process.
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path. If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
+# with ServerRoot set to "/etc/httpd" will be interpreted by the
+# server as "/etc/httpd/logs/foo.log".
+#
+
+### Section 1: Global Environment
+#
+# The directives in this section affect the overall operation of Apache,
+# such as the number of concurrent requests it can handle or where it
+# can find its configuration files.
+#
+
+#
+# Don't give away too much information about all the subcomponents
+# we are running. Comment out this line if you don't mind remote sites
+# finding out what major optional modules you are running
+ServerTokens OS
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# NOTE! If you intend to place this on an NFS (or otherwise network)
+# mounted filesystem then please read the LockFile documentation
+# (available at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
+# you will save yourself a lot of trouble.
+#
+# Do NOT add a slash at the end of the directory path.
+#
+#ServerRoot "/etc/httpd"
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts.
+#
+PidFile run/httpd.pid
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 120
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive Off
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 15
+
+##
+## Server-Pool Size Regulation (MPM specific)
+##
+
+# prefork MPM
+# StartServers: number of server processes to start
+# MinSpareServers: minimum number of server processes which are kept spare
+# MaxSpareServers: maximum number of server processes which are kept spare
+# ServerLimit: maximum value for MaxClients for the lifetime of the server
+# MaxClients: maximum number of server processes allowed to start
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule prefork.c>
+StartServers 8
+MinSpareServers 5
+MaxSpareServers 20
+ServerLimit 256
+MaxClients 256
+MaxRequestsPerChild 4000
+</IfModule>
+
+# worker MPM
+# StartServers: initial number of server processes to start
+# MaxClients: maximum number of simultaneous client connections
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule worker.c>
+StartServers 2
+MaxClients 150
+MinSpareThreads 25
+MaxSpareThreads 75
+ThreadsPerChild 25
+MaxRequestsPerChild 0
+</IfModule>
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, in addition to the default. See also the <VirtualHost>
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
+#
+#Listen 12.34.56.78:80
+Listen 127.0.0.1:8000
+
+#
+# Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a DSO you
+# have to place corresponding `LoadModule' lines at this location so the
+# directives contained in it are actually available _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module modules/mod_foo.so
+#
+LoadModule auth_basic_module modules/mod_auth_basic.so
+LoadModule auth_digest_module modules/mod_auth_digest.so
+LoadModule authn_file_module modules/mod_authn_file.so
+LoadModule authn_alias_module modules/mod_authn_alias.so
+LoadModule authn_anon_module modules/mod_authn_anon.so
+LoadModule authn_dbm_module modules/mod_authn_dbm.so
+LoadModule authn_default_module modules/mod_authn_default.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule authz_user_module modules/mod_authz_user.so
+LoadModule authz_owner_module modules/mod_authz_owner.so
+LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
+LoadModule authz_dbm_module modules/mod_authz_dbm.so
+LoadModule authz_default_module modules/mod_authz_default.so
+LoadModule ldap_module modules/mod_ldap.so
+LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
+LoadModule include_module modules/mod_include.so
+LoadModule log_config_module modules/mod_log_config.so
+LoadModule logio_module modules/mod_logio.so
+LoadModule env_module modules/mod_env.so
+LoadModule ext_filter_module modules/mod_ext_filter.so
+LoadModule mime_magic_module modules/mod_mime_magic.so
+LoadModule expires_module modules/mod_expires.so
+LoadModule deflate_module modules/mod_deflate.so
+LoadModule headers_module modules/mod_headers.so
+LoadModule usertrack_module modules/mod_usertrack.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule dav_module modules/mod_dav.so
+LoadModule status_module modules/mod_status.so
+LoadModule autoindex_module modules/mod_autoindex.so
+LoadModule info_module modules/mod_info.so
+LoadModule dav_fs_module modules/mod_dav_fs.so
+LoadModule vhost_alias_module modules/mod_vhost_alias.so
+LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule dir_module modules/mod_dir.so
+LoadModule actions_module modules/mod_actions.so
+LoadModule speling_module modules/mod_speling.so
+LoadModule userdir_module modules/mod_userdir.so
+LoadModule alias_module modules/mod_alias.so
+LoadModule rewrite_module modules/mod_rewrite.so
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
+LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
+LoadModule proxy_http_module modules/mod_proxy_http.so
+LoadModule proxy_connect_module modules/mod_proxy_connect.so
+LoadModule cache_module modules/mod_cache.so
+LoadModule suexec_module modules/mod_suexec.so
+LoadModule disk_cache_module modules/mod_disk_cache.so
+LoadModule file_cache_module modules/mod_file_cache.so
+LoadModule mem_cache_module modules/mod_mem_cache.so
+LoadModule cgi_module modules/mod_cgi.so
+
+#
+# The following modules are not loaded by default:
+#
+#LoadModule cern_meta_module modules/mod_cern_meta.so
+#LoadModule asis_module modules/mod_asis.so
+
+#
+# Load config files from the config directory "/etc/httpd/conf.d".
+#
+#Include conf.d/*.conf
+
+#
+# ExtendedStatus controls whether Apache will generate "full" status
+# information (ExtendedStatus On) or just basic information (ExtendedStatus
+# Off) when the "server-status" handler is called. The default is Off.
+#
+#ExtendedStatus On
+
+#
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.
+#
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
+# . On HPUX you may not be able to use shared memory as nobody, and the
+# suggested workaround is to create a user www and use that user.
+# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
+# when the value of (unsigned)Group is above 60000;
+# don't use Group #-1 on these systems!
+#
+#User apache
+#Group apache
+
+### Section 2: 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# <VirtualHost> definition. These values also provide defaults for
+# any <VirtualHost> containers you may define later in the file.
+#
+# All of these directives may appear inside <VirtualHost> containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+#
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed. This address appears on some server-generated pages, such
+# as error documents. e.g. admin(a)your-domain.com
+#
+ServerAdmin root@localhost
+
+#
+# ServerName gives the name and port that the server uses to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+#
+# If this is not set to valid DNS name for your host, server-generated
+# redirections will not work. See also the UseCanonicalName directive.
+#
+# If your host doesn't have a registered DNS name, enter its IP address here.
+# You will have to access it by its address anyway, and this will make
+# redirections work in a sensible way.
+#
+ServerName 127.0.0.1:8000
+
+#
+# UseCanonicalName: Determines how Apache constructs self-referencing
+# URLs and the SERVER_NAME and SERVER_PORT variables.
+# When set "Off", Apache will use the Hostname and Port supplied
+# by the client. When set "On", Apache will use the value of the
+# ServerName directive.
+#
+UseCanonicalName Off
+
+#
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+#
+DocumentRoot "/var/www/html"
+
+#
+# Each directory to which Apache has access can be configured with respect
+# to which services and features are allowed and/or disabled in that
+# directory (and its subdirectories).
+#
+# First, we configure the "default" to be a very restrictive set of
+# features.
+#
+<Directory />
+ Options FollowSymLinks
+ AllowOverride None
+</Directory>
+
+#
+# Note that from this point forward you must specifically allow
+# particular features to be enabled - so if something's not working as
+# you might expect, make sure that you have specifically enabled it
+# below.
+#
+
+#
+# This should be changed to whatever you set DocumentRoot to.
+#
+<Directory "/var/www/html">
+
+#
+# Possible values for the Options directive are "None", "All",
+# or any combination of:
+# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+#
+# Note that "MultiViews" must be named *explicitly* --- "Options All"
+# doesn't give it to you.
+#
+# The Options directive is both complicated and important. Please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#options
+# for more information.
+#
+ Options Indexes FollowSymLinks
+
+#
+# AllowOverride controls what directives may be placed in .htaccess files.
+# It can be "All", "None", or any combination of the keywords:
+# Options FileInfo AuthConfig Limit
+#
+ AllowOverride None
+
+#
+# Controls who can get stuff from this server.
+#
+ Order allow,deny
+ Allow from all
+
+</Directory>
+
+#
+# UserDir: The name of the directory that is appended onto a user's home
+# directory if a ~user request is received.
+#
+# The path to the end user account 'public_html' directory must be
+# accessible to the webserver userid. This usually means that ~userid
+# must have permissions of 711, ~userid/public_html must have permissions
+# of 755, and documents contained therein must be world-readable.
+# Otherwise, the client will only receive a "403 Forbidden" message.
+#
+# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
+#
+<IfModule mod_userdir.c>
+ #
+ # UserDir is disabled by default since it can confirm the presence
+ # of a username on the system (depending on home directory
+ # permissions).
+ #
+ UserDir disable
+
+ #
+ # To enable requests to /~user/ to serve the user's public_html
+ # directory, remove the "UserDir disable" line above, and uncomment
+ # the following line instead:
+ #
+ #UserDir public_html
+
+</IfModule>
+
+#
+# Control access to UserDir directories. The following is an example
+# for a site where these directories are restricted to read-only.
+#
+#<Directory /home/*/public_html>
+# AllowOverride FileInfo AuthConfig Limit
+# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+# <Limit GET POST OPTIONS>
+# Order allow,deny
+# Allow from all
+# </Limit>
+# <LimitExcept GET POST OPTIONS>
+# Order deny,allow
+# Deny from all
+# </LimitExcept>
+#</Directory>
+
+#
+# DirectoryIndex: sets the file that Apache will serve if a directory
+# is requested.
+#
+# The index.html.var file (a type-map) is used to deliver content-
+# negotiated documents. The MultiViews Option can be used for the
+# same purpose, but it is much slower.
+#
+DirectoryIndex index.html index.html.var
+
+#
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives. See also the AllowOverride
+# directive.
+#
+AccessFileName .htaccess
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+<Files ~ "^\.ht">
+ Order allow,deny
+ Deny from all
+</Files>
+
+#
+# TypesConfig describes where the mime.types file (or equivalent) is
+# to be found.
+#
+TypesConfig /etc/mime.types
+
+#
+# DefaultType is the default MIME type the server will use for a document
+# if it cannot otherwise determine one, such as from filename extensions.
+# If your server contains mostly text or HTML documents, "text/plain" is
+# a good value. If most of your content is binary, such as applications
+# or images, you may want to use "application/octet-stream" instead to
+# keep browsers from trying to display binary files as though they are
+# text.
+#
+DefaultType text/plain
+
+#
+# The mod_mime_magic module allows the server to use various hints from the
+# contents of the file itself to determine its type. The MIMEMagicFile
+# directive tells the module where the hint definitions are located.
+#
+<IfModule mod_mime_magic.c>
+# MIMEMagicFile /usr/share/magic.mime
+ MIMEMagicFile conf/magic
+</IfModule>
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
+
+#
+# EnableMMAP: Control whether memory-mapping is used to deliver
+# files (assuming that the underlying OS supports it).
+# The default is on; turn this off if you serve from NFS-mounted
+# filesystems. On some systems, turning it off (regardless of
+# filesystem) can improve performance; for details, please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap
+#
+#EnableMMAP off
+
+#
+# EnableSendfile: Control whether the sendfile kernel support is
+# used to deliver files (assuming that the OS supports it).
+# The default is on; turn this off if you serve from NFS-mounted
+# filesystems. Please see
+# http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
+#
+#EnableSendfile off
+
+#
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here. If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog logs/error_log
+
+#
+# LogLevel: Control the number of messages logged to the error_log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+#
+# The following directives define some format nicknames for use with
+# a CustomLog directive (see below).
+#
+LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %b" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+# "combinedio" includes actual counts of actual bytes received (%I) and sent (%O); this
+# requires the mod_logio module to be loaded.
+#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+
+#
+# The location and format of the access logfile (Common Logfile Format).
+# If you do not define any access logfiles within a <VirtualHost>
+# container, they will be logged here. Contrariwise, if you *do*
+# define per-<VirtualHost> access logfiles, transactions will be
+# logged therein and *not* in this file.
+#
+#CustomLog logs/access_log common
+
+#
+# If you would like to have separate agent and referer logfiles, uncomment
+# the following directives.
+#
+#CustomLog logs/referer_log referer
+#CustomLog logs/agent_log agent
+
+#
+# For a single logfile with access, agent, and referer information
+# (Combined Logfile Format), use the following directive:
+#
+CustomLog logs/access_log combined
+
+#
+# Optionally add a line containing the server version and virtual host
+# name to server-generated pages (internal error documents, FTP directory
+# listings, mod_status and mod_info output etc., but not CGI generated
+# documents or custom error documents).
+# Set to "EMail" to also include a mailto: link to the ServerAdmin.
+# Set to one of: On | Off | EMail
+#
+ServerSignature On
+
+#
+# Aliases: Add here as many aliases as you need (with no limit). The format is
+# Alias fakename realname
+#
+# Note that if you include a trailing / on fakename then the server will
+# require it to be present in the URL. So "/icons" isn't aliased in this
+# example, only "/icons/". If the fakename is slash-terminated, then the
+# realname must also be slash terminated, and if the fakename omits the
+# trailing slash, the realname must also omit it.
+#
+# We include the /icons/ alias for FancyIndexed directory listings. If you
+# do not use FancyIndexing, you may comment this out.
+#
+Alias /icons/ "/var/www/icons/"
+
+<Directory "/var/www/icons">
+ Options Indexes MultiViews
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+</Directory>
+
+#
+# WebDAV module configuration section.
+#
+<IfModule mod_dav_fs.c>
+ # Location of the WebDAV lock database.
+ DAVLockDB /var/lib/dav/lockdb
+</IfModule>
+
+#
+# ScriptAlias: This controls which directories contain server scripts.
+# ScriptAliases are essentially the same as Aliases, except that
+# documents in the realname directory are treated as applications and
+# run by the server when requested rather than as documents sent to the client.
+# The same rules about trailing "/" apply to ScriptAlias directives as to
+# Alias.
+#
+ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
+
+#
+# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+<Directory "/var/www/cgi-bin">
+ AllowOverride None
+ Options None
+ Order allow,deny
+ Allow from all
+</Directory>
+
+#
+# Redirect allows you to tell clients about documents which used to exist in
+# your server's namespace, but do not anymore. This allows you to tell the
+# clients where to look for the relocated document.
+# Example:
+# Redirect permanent /foo http://www.example.com/bar
+
+#
+# Directives controlling the display of server-generated directory listings.
+#
+
+#
+# IndexOptions: Controls the appearance of server-generated directory
+# listings.
+#
+IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
+
+#
+# AddIcon* directives tell the server which icon to show for different
+# files or filename extensions. These are only displayed for
+# FancyIndexed directories.
+#
+AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
+
+AddIconByType (TXT,/icons/text.gif) text/*
+AddIconByType (IMG,/icons/image2.gif) image/*
+AddIconByType (SND,/icons/sound2.gif) audio/*
+AddIconByType (VID,/icons/movie.gif) video/*
+
+AddIcon /icons/binary.gif .bin .exe
+AddIcon /icons/binhex.gif .hqx
+AddIcon /icons/tar.gif .tar
+AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
+AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
+AddIcon /icons/a.gif .ps .ai .eps
+AddIcon /icons/layout.gif .html .shtml .htm .pdf
+AddIcon /icons/text.gif .txt
+AddIcon /icons/c.gif .c
+AddIcon /icons/p.gif .pl .py
+AddIcon /icons/f.gif .for
+AddIcon /icons/dvi.gif .dvi
+AddIcon /icons/uuencoded.gif .uu
+AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
+AddIcon /icons/tex.gif .tex
+AddIcon /icons/bomb.gif core
+
+AddIcon /icons/back.gif ..
+AddIcon /icons/hand.right.gif README
+AddIcon /icons/folder.gif ^^DIRECTORY^^
+AddIcon /icons/blank.gif ^^BLANKICON^^
+
+#
+# DefaultIcon is which icon to show for files which do not have an icon
+# explicitly set.
+#
+DefaultIcon /icons/unknown.gif
+
+#
+# AddDescription allows you to place a short description after a file in
+# server-generated indexes. These are only displayed for FancyIndexed
+# directories.
+# Format: AddDescription "description" filename
+#
+#AddDescription "GZIP compressed document" .gz
+#AddDescription "tar archive" .tar
+#AddDescription "GZIP compressed tar archive" .tgz
+
+#
+# ReadmeName is the name of the README file the server will look for by
+# default, and append to directory listings.
+#
+# HeaderName is the name of a file which should be prepended to
+# directory indexes.
+ReadmeName README.html
+HeaderName HEADER.html
+
+#
+# IndexIgnore is a set of filenames which directory indexing should ignore
+# and not include in the listing. Shell-style wildcarding is permitted.
+#
+IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
+
+#
+# DefaultLanguage and AddLanguage allows you to specify the language of
+# a document. You can then use content negotiation to give a browser a
+# file in a language the user can understand.
+#
+# Specify a default language. This means that all data
+# going out without a specific language tag (see below) will
+# be marked with this one. You probably do NOT want to set
+# this unless you are sure it is correct for all cases.
+#
+# * It is generally better to not mark a page as
+# * being a certain language than marking it with the wrong
+# * language!
+#
+# DefaultLanguage nl
+#
+# Note 1: The suffix does not have to be the same as the language
+# keyword --- those with documents in Polish (whose net-standard
+# language code is pl) may wish to use "AddLanguage pl .po" to
+# avoid the ambiguity with the common suffix for perl scripts.
+#
+# Note 2: The example entries below illustrate that in some cases
+# the two character 'Language' abbreviation is not identical to
+# the two character 'Country' code for its country,
+# E.g. 'Danmark/dk' versus 'Danish/da'.
+#
+# Note 3: In the case of 'ltz' we violate the RFC by using a three char
+# specifier. There is 'work in progress' to fix this and get
+# the reference data for rfc1766 cleaned up.
+#
+# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
+# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
+# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
+# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
+# Norwegian (no) - Polish (pl) - Portugese (pt)
+# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
+# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
+#
+AddLanguage ca .ca
+AddLanguage cs .cz .cs
+AddLanguage da .dk
+AddLanguage de .de
+AddLanguage el .el
+AddLanguage en .en
+AddLanguage eo .eo
+AddLanguage es .es
+AddLanguage et .et
+AddLanguage fr .fr
+AddLanguage he .he
+AddLanguage hr .hr
+AddLanguage it .it
+AddLanguage ja .ja
+AddLanguage ko .ko
+AddLanguage ltz .ltz
+AddLanguage nl .nl
+AddLanguage nn .nn
+AddLanguage no .no
+AddLanguage pl .po
+AddLanguage pt .pt
+AddLanguage pt-BR .pt-br
+AddLanguage ru .ru
+AddLanguage sv .sv
+AddLanguage zh-CN .zh-cn
+AddLanguage zh-TW .zh-tw
+
+#
+# LanguagePriority allows you to give precedence to some languages
+# in case of a tie during content negotiation.
+#
+# Just list the languages in decreasing order of preference. We have
+# more or less alphabetized them here. You probably want to change this.
+#
+LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
+
+#
+# ForceLanguagePriority allows you to serve a result page rather than
+# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
+# [in case no accepted languages matched the available variants]
+#
+ForceLanguagePriority Prefer Fallback
+
+#
+# Specify a default charset for all content served; this enables
+# interpretation of all content as UTF-8 by default. To use the
+# default browser choice (ISO-8859-1), or to allow the META tags
+# in HTML content to override this choice, comment out this
+# directive:
+#
+AddDefaultCharset UTF-8
+
+#
+# AddType allows you to add to or override the MIME configuration
+# file mime.types for specific file types.
+#
+#AddType application/x-tar .tgz
+
+#
+# AddEncoding allows you to have certain browsers uncompress
+# information on the fly. Note: Not all browsers support this.
+# Despite the name similarity, the following Add* directives have nothing
+# to do with the FancyIndexing customization directives above.
+#
+#AddEncoding x-compress .Z
+#AddEncoding x-gzip .gz .tgz
+
+# If the AddEncoding directives above are commented-out, then you
+# probably should define those extensions to indicate media types:
+#
+AddType application/x-compress .Z
+AddType application/x-gzip .gz .tgz
+
+#
+# AddHandler allows you to map certain file extensions to "handlers":
+# actions unrelated to filetype. These can be either built into the server
+# or added with the Action directive (see below)
+#
+# To use CGI scripts outside of ScriptAliased directories:
+# (You will also need to add "ExecCGI" to the "Options" directive.)
+#
+#AddHandler cgi-script .cgi
+
+#
+# For files that include their own HTTP headers:
+#
+#AddHandler send-as-is asis
+
+#
+# For type maps (negotiated resources):
+# (This is enabled by default to allow the Apache "It Worked" page
+# to be distributed in multiple languages.)
+#
+AddHandler type-map var
+
+#
+# Filters allow you to process content before it is sent to the client.
+#
+# To parse .shtml files for server-side includes (SSI):
+# (You will also need to add "Includes" to the "Options" directive.)
+#
+AddType text/html .shtml
+AddOutputFilter INCLUDES .shtml
+
+#
+# Action lets you define media types that will execute a script whenever
+# a matching file is called. This eliminates the need for repeated URL
+# pathnames for oft-used CGI file processors.
+# Format: Action media/type /cgi-script/location
+# Format: Action handler-name /cgi-script/location
+#
+
+#
+# Customizable error responses come in three flavors:
+# 1) plain text 2) local redirects 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# Putting this all together, we can internationalize error responses.
+#
+# We use Alias to redirect any /error/HTTP_<error>.html.var response to
+# our collection of by-error message multi-language collections. We use
+# includes to substitute the appropriate text.
+#
+# You can modify the messages' appearance without changing any of the
+# default HTTP_<error>.html.var files by adding the line:
+#
+# Alias /error/include/ "/your/include/path/"
+#
+# which allows you to create your own set of files by starting with the
+# /var/www/error/include/ files and
+# copying them to /your/include/path/, even on a per-VirtualHost basis.
+#
+
+Alias /error/ "/var/www/error/"
+
+<IfModule mod_negotiation.c>
+<IfModule mod_include.c>
+ <Directory "/var/www/error">
+ AllowOverride None
+ Options IncludesNoExec
+ AddOutputFilter Includes html
+ AddHandler type-map var
+ Order allow,deny
+ Allow from all
+ LanguagePriority en es de fr
+ ForceLanguagePriority Prefer Fallback
+ </Directory>
+
+# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
+# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
+# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
+# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
+# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
+# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
+# ErrorDocument 410 /error/HTTP_GONE.html.var
+# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
+# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
+# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
+# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
+# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
+# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
+# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
+# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
+# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
+# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
+
+</IfModule>
+</IfModule>
+
+#
+# The following directives modify normal HTTP response behavior to
+# handle known problems with browser implementations.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+
+#
+# The following directive disables redirects on non-GET requests for
+# a directory that does not include the trailing slash. This fixes a
+# problem with Microsoft WebFolders which does not appropriately handle
+# redirects for folders with DAV methods.
+# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
+#
+BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+BrowserMatch "MS FrontPage" redirect-carefully
+BrowserMatch "^WebDrive" redirect-carefully
+BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
+BrowserMatch "^gnome-vfs/1.0" redirect-carefully
+BrowserMatch "^XML Spy" redirect-carefully
+BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
+
+#
+# Allow server status reports generated by mod_status,
+# with the URL of http://servername/server-status
+# Change the ".example.com" to match your domain to enable.
+#
+#<Location /server-status>
+# SetHandler server-status
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Location>
+
+#
+# Allow remote server configuration reports, with the URL of
+# http://servername/server-info (requires that mod_info.c be loaded).
+# Change the ".example.com" to match your domain to enable.
+#
+#<Location /server-info>
+# SetHandler server-info
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Location>
+
+#
+# Proxy Server directives. Uncomment the following lines to
+# enable the proxy server:
+#
+#<IfModule mod_proxy.c>
+#ProxyRequests On
+#
+#<Proxy *>
+# Order deny,allow
+# Deny from all
+# Allow from .example.com
+#</Proxy>
+
+#
+# Enable/disable the handling of HTTP/1.1 "Via:" headers.
+# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
+# Set to one of: Off | On | Full | Block
+#
+#ProxyVia On
+
+#
+# To enable a cache of proxied content, uncomment the following lines.
+# See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details.
+#
+#<IfModule mod_disk_cache.c>
+# CacheEnable disk /
+# CacheRoot "/var/cache/mod_proxy"
+#</IfModule>
+#
+
+#</IfModule>
+# End of proxy directives.
+
+### Section 3: Virtual Hosts
+#
+# VirtualHost: If you want to maintain multiple domains/hostnames on your
+# machine you can setup VirtualHost containers for them. Most configurations
+# use only name-based virtual hosts so the server doesn't need to worry about
+# IP addresses. This is indicated by the asterisks in the directives below.
+#
+# Please see the documentation at
+# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
+# for further details before you try to setup virtual hosts.
+#
+# You may use the command line option '-S' to verify your virtual host
+# configuration.
+
+#
+# Use name-based virtual hosting.
+#
+#NameVirtualHost *:80
+#
+# NOTE: NameVirtualHost cannot be used without a port specifier
+# (e.g. :80) if mod_ssl is being used, due to the nature of the
+# SSL protocol.
+#
+
+#
+# VirtualHost example:
+# Almost any Apache directive may go into a VirtualHost container.
+# The first VirtualHost section is used for requests without a known
+# server name.
+#
+#<VirtualHost *:80>
+# ServerAdmin webmaster(a)dummy-host.example.com
+# DocumentRoot /www/docs/dummy-host.example.com
+# ServerName dummy-host.example.com
+# ErrorLog logs/dummy-host.example.com-error_log
+# CustomLog logs/dummy-host.example.com-access_log common
+#</VirtualHost>
Added: trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/META-INF/jboss-beans.xml
===================================================================
--- trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/META-INF/jboss-beans.xml (rev 0)
+++ trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/META-INF/jboss-beans.xml 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="WebServer"
+ class="org.jboss.web.tomcat.service.deployers.TomcatService">
+
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=WebServer", exposedInterface=org.jboss.web.tomcat.service.deployers.TomcatServiceMBean.class,registerDirectly=true)</annotation>
+
+ <!-- Only needed if the org.jboss.web.tomcat.service.jca.CachedConnectionValve
+ is enabled in the tomcat server.xml file.
+ -->
+ <depends>jboss.jca:service=CachedConnectionManager</depends>
+
+ <!-- Transaction manager for unfinished transaction checking in the CachedConnectionValve -->
+ <depends>jboss:service=TransactionManager</depends>
+
+ <!-- Only needed if the org.jboss.web.tomcat.service.deployers.MicrocontainerIntegrationLifecycleListener
+ is enabled in the tomcat server.xml file.
+ -->
+ <depends>ModClusterLifecycleListener</depends>
+
+ <!-- Inject the TomcatDeployer -->
+ <property name="tomcatDeployer"><inject bean="WarDeployer"/></property>
+
+ <!--
+ Do not configure other JMX attributes via this file.
+ Use the WarDeployer bean in deployers/jboss-web.deployer/war-deployers-beans.xml
+ -->
+
+ </bean>
+
+</deployment>
Added: trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/server.xml
===================================================================
--- trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/server.xml (rev 0)
+++ trunk/mod_cluster/src/test/resources/test-configs/mod-cluster-jbossas/deploy/jbossweb.sar/server.xml 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,165 @@
+<Server>
+
+ <!-- Optional listener which ensures correct init and shutdown of APR,
+ and provides information if it is not installed -->
+ <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+ <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
+ <Listener className="org.apache.catalina.core.JasperListener" />
+ <!--Listener className="org.jboss.modcluster.ClusterListener"
+ advertise="true"/-->
+ <Listener className="org.jboss.web.tomcat.service.deployers.MicrocontainerIntegrationLifecycleListener"
+ delegateBeanName="ModClusterLifecycleListener" />
+
+ <Service name="jboss.web">
+
+ <!-- A HTTP/1.1 Connector on port 8080 -->
+ <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}"
+ connectionTimeout="20000" redirectPort="8443" />
+
+ <!-- Add this option to the connector to avoid problems with
+ .NET clients that don't implement HTTP/1.1 correctly
+ restrictedUserAgents="^.*MS Web Services Client Protocol 1.1.4322.*$"
+ -->
+
+ <!-- A AJP 1.3 Connector on port 8009 -->
+ <Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
+ redirectPort="8443" />
+
+ <!-- SSL/TLS Connector configuration using the admin devl guide keystore
+ <Connector protocol="HTTP/1.1" SSLEnabled="true"
+ port="8443" address="${jboss.bind.address}"
+ scheme="https" secure="true" clientAuth="false"
+ keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
+ keystorePass="rmi+ssl" sslProtocol = "TLS" />
+ -->
+
+ <Engine name="jboss.web" defaultHost="localhost" jvmRoute="localhost">
+
+ <!-- The JAAS based authentication and authorization realm implementation
+ that is compatible with the jboss 3.2.x realm implementation.
+ - certificatePrincipal : the class name of the
+ org.jboss.security.auth.certs.CertificatePrincipal impl
+ used for mapping X509[] cert chains to a Princpal.
+ - allRolesMode : how to handle an auth-constraint with a role-name=*,
+ one of strict, authOnly, strictAuthOnly
+ + strict = Use the strict servlet spec interpretation which requires
+ that the user have one of the web-app/security-role/role-name
+ + authOnly = Allow any authenticated user
+ + strictAuthOnly = Allow any authenticated user only if there are no
+ web-app/security-roles
+ -->
+ <Realm className="org.jboss.web.tomcat.security.JBossWebRealm"
+ certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"
+ allRolesMode="authOnly"
+ />
+ <!-- A subclass of JBossSecurityMgrRealm that uses the authentication
+ behavior of JBossSecurityMgrRealm, but overrides the authorization
+ checks to use JACC permissions with the current java.security.Policy
+ to determine authorized access.
+ - allRolesMode : how to handle an auth-constraint with a role-name=*,
+ one of strict, authOnly, strictAuthOnly
+ + strict = Use the strict servlet spec interpretation which requires
+ that the user have one of the web-app/security-role/role-name
+ + authOnly = Allow any authenticated user
+ + strictAuthOnly = Allow any authenticated user only if there are no
+ web-app/security-roles
+ <Realm className="org.jboss.web.tomcat.security.JaccAuthorizationRealm"
+ certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"
+ allRolesMode="authOnly"
+ />
+ -->
+
+ <Host name="localhost">
+
+ <!-- Uncomment to enable request dumper. This Valve "logs interesting
+ contents from the specified Request (before processing) and the
+ corresponding Response (after processing). It is especially useful
+ in debugging problems related to headers and cookies."
+ -->
+ <!--
+ <Valve className="org.apache.catalina.valves.RequestDumperValve" />
+ -->
+
+ <!-- Access logger -->
+ <!--
+ <Valve className="org.apache.catalina.valves.AccessLogValve"
+ prefix="localhost_access_log." suffix=".log"
+ pattern="common" directory="${jboss.server.log.dir}"
+ resolveHosts="false" />
+ -->
+
+ <!-- Uncomment to enable single sign-on across web apps
+ deployed to this host. Does not provide SSO across a cluster.
+
+ If this valve is used, do not use the JBoss ClusteredSingleSignOn
+ valve shown below.
+
+ A new configuration attribute is available beginning with
+ release 4.0.4:
+
+ cookieDomain configures the domain to which the SSO cookie
+ will be scoped (i.e. the set of hosts to
+ which the cookie will be presented). By default
+ the cookie is scoped to "/", meaning the host
+ that presented it. Set cookieDomain to a
+ wider domain (e.g. "xyz.com") to allow an SSO
+ to span more than one hostname.
+ -->
+ <!--
+ <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+ -->
+
+ <!-- Uncomment to enable single sign-on across web apps
+ deployed to this host AND to all other hosts in the cluster.
+
+ If this valve is used, do not use the standard Tomcat SingleSignOn
+ valve shown above.
+
+ Valve uses a JBossCache instance to support SSO credential
+ caching and replication across the cluster. The JBossCache
+ instance must be configured separately. See the
+ "jboss-web-clusteredsso-beans.xml" file in the
+ server/all/deploy directory for cache configuration details.
+
+ Besides the attributes supported by the standard Tomcat
+ SingleSignOn valve (see the Tomcat docs), this version also
+ supports the following attributes:
+
+ cookieDomain see above
+
+ treeCacheName JMX ObjectName of the JBossCache MBean used to
+ support credential caching and replication across
+ the cluster. If not set, the default value is
+ "jboss.cache:service=ClusteredSSOCache"
+
+ maxEmptyLife The maximum number of seconds an SSO with no
+ active sessions will be usable by a request
+
+ processExpiresInterval The minimum number of seconds between
+ efforts by the valve to find and invalidate
+ SSO's that have exceeded their 'maxEmptyLife'.
+ Does not imply effort will be spent on such
+ cleanup every 'processExpiresInterval'.
+ -->
+ <!--
+ <Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" />
+ -->
+
+ <!-- Check for unclosed connections and transaction terminated checks
+ in servlets/jsps.
+
+ Important: The dependency on the CachedConnectionManager
+ in META-INF/jboss-service.xml must be uncommented, too
+ -->
+
+ <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
+ cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
+ transactionManagerObjectName="jboss:service=TransactionManager" />
+
+ </Host>
+
+ </Engine>
+
+ </Service>
+
+</Server>
Added: trunk/mod_cluster/test-jars.xml
===================================================================
--- trunk/mod_cluster/test-jars.xml (rev 0)
+++ trunk/mod_cluster/test-jars.xml 2008-09-18 22:55:29 UTC (rev 1868)
@@ -0,0 +1,15 @@
+<!-- Ant project fragment for the unit tests deployment jars
+$Id: test-jars.xml 77754 2008-09-01 14:25:24Z adrian(a)jboss.org $
+-->
+<project name="test-jars">
+
+ <!--
+ | Build all jar files.
+ | Add a separate target for each test deployment/set of deployments
+ | and then add that target to depends="..."
+ -->
+ <target name="jars" description="Builds all jar files."
+ depends="init, compile-resources"/>
+
+</project>
+
15 years, 7 months
JBoss Native SVN: r1867 - trunk/mod_cluster/native/mod_manager.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-18 12:25:08 -0400 (Thu, 18 Sep 2008)
New Revision: 1867
Modified:
trunk/mod_cluster/native/mod_manager/mod_manager.c
Log:
Add directive to make the persistent switchable.
Modified: trunk/mod_cluster/native/mod_manager/mod_manager.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-09-18 14:27:12 UTC (rev 1866)
+++ trunk/mod_cluster/native/mod_manager/mod_manager.c 2008-09-18 16:25:08 UTC (rev 1867)
@@ -106,6 +106,9 @@
/* last time the node update logic was called */
apr_time_t last_updated;
+ /* Should be the slotmem persisted (1) or not (0) */
+ int persistent;
+
} mod_manager_config;
/*
@@ -286,6 +289,7 @@
/* Get a provider to handle the shared memory */
storage = ap_lookup_provider(SLOTMEM_STORAGE, "shared", "0");
+ // storage->persistent = 0;
if (storage == NULL) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_EMERG, 0, s, "ap_lookup_provider %s failed", SLOTMEM_STORAGE);
return !OK;
@@ -1256,6 +1260,20 @@
/* XXX: create the entry in the shared balancer table */
return NULL;
}
+static const char*cmd_manager_pers(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ mod_manager_config *mconf = ap_get_module_config(cmd->server->module_config, &manager_module);
+ if (strcasecmp(arg, "Off") == 0)
+ mconf->persistent = 0;
+ else if (strcasecmp(arg, "On") == 0)
+ mconf->persistent = 1;
+ else {
+ return "PersistSlots must be one of: "
+ "off | on";
+ }
+ return NULL;
+}
+
static const command_rec manager_cmds[] =
{
AP_INIT_TAKE1(
@@ -1293,6 +1311,13 @@
OR_ALL,
"ManagerBalancerName - name of a balancer corresponding to the manager"
),
+ AP_INIT_TAKE1(
+ "PersistSlots",
+ cmd_manager_pers,
+ NULL,
+ OR_ALL,
+ "PersistSlots - Persist the slot mem elements on | off (Default: off No persistence)"
+ ),
{NULL}
};
@@ -1334,6 +1359,7 @@
mconf->maxnode = DEFMAXNODE;
mconf->maxhost = DEFMAXHOST;
mconf->last_updated = 0;
+ mconf->persistent = 0;
return mconf;
}
@@ -1352,6 +1378,7 @@
mconf->maxcontext = DEFMAXCONTEXT;
mconf->maxnode = DEFMAXNODE;
mconf->last_updated = 0;
+ mconf->persistent = 0;
if (mconf2->basefilename)
mconf->basefilename = apr_pstrdup(p, mconf2->basefilename);
@@ -1373,6 +1400,11 @@
else if (mconf1->maxhost != DEFMAXHOST)
mconf->maxhost = mconf1->maxhost;
+ if (mconf2->persistent != 0)
+ mconf->persistent = mconf2->persistent;
+ else if (mconf1->persistent != 0)
+ mconf->persistent = mconf1->persistent;
+
return mconf;
}
15 years, 7 months
JBoss Native SVN: r1866 - trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-18 10:27:12 -0400 (Thu, 18 Sep 2008)
New Revision: 1866
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java
Log:
Oops DUMP instead INFO :-(
Modified: trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java
===================================================================
--- trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java 2008-09-18 07:50:43 UTC (rev 1865)
+++ trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java 2008-09-18 14:27:12 UTC (rev 1866)
@@ -363,7 +363,7 @@
{
Proxy proxy = this.proxies.get(i);
result.append("Proxy[").append(i).append("]: [").append(proxy.getAddress()).append(':').append(proxy.getPort()).append("]: \r\n");
- result.append(this.sendRequest(new MCMPRequest(MCMPRequestType.DUMP, true, parameters), proxy)).append("\r\n");
+ result.append(this.sendRequest(new MCMPRequest(MCMPRequestType.INFO, true, parameters), proxy)).append("\r\n");
}
}
finally
15 years, 7 months
JBoss Native SVN: r1865 - trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-18 03:50:43 -0400 (Thu, 18 Sep 2008)
New Revision: 1865
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java
Log:
Rollback r1854
It would log each timer event when we don't have a connection to httpd.
Modified: trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java
===================================================================
--- trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java 2008-09-18 07:49:10 UTC (rev 1864)
+++ trunk/mod_cluster/src/main/java/org/jboss/modcluster/mcmp/impl/DefaultMCMPHandler.java 2008-09-18 07:50:43 UTC (rev 1865)
@@ -459,31 +459,33 @@
lock.lock();
try
- {
- // Reset the node information after an error.
+ {
for (Proxy proxy: this.proxies)
{
if (proxy.getState() == Proxy.State.ERROR)
{
proxy.setState(Proxy.State.OK);
-
- // We recovered above; if we get another IOException
- // we should log it
- proxy.setIoExceptionLogged(false);
- if (sendResetRequests)
+ this.sendRequest(MCMPUtils.getInfoRequest(), proxy);
+
+ if (proxy.getState() == Proxy.State.OK)
{
- if (resetRequests == null)
+ // We recovered above; if we get another IOException
+ // we should log it
+ proxy.setIoExceptionLogged(false);
+
+ if (sendResetRequests)
{
- resetRequests = this.resetRequestSource.getResetRequests();
+ if (resetRequests == null)
+ {
+ resetRequests = this.resetRequestSource.getResetRequests();
+ }
+
+ for (MCMPRequest request: resetRequests)
+ {
+ this.sendRequest(request, proxy);
+ }
}
-
- for (MCMPRequest request: resetRequests)
- {
- this.sendRequest(request, proxy);
- }
- } else {
- this.sendRequest(MCMPUtils.getInfoRequest(), proxy);
}
}
}
15 years, 7 months
JBoss Native SVN: r1864 - trunk/mod_cluster/test/java.
by jbossnative-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-09-18 03:49:10 -0400 (Thu, 18 Sep 2008)
New Revision: 1864
Modified:
trunk/mod_cluster/test/java/build.xml
Log:
Allow to the run whole test using the mod_cluster listener.
Modified: trunk/mod_cluster/test/java/build.xml
===================================================================
--- trunk/mod_cluster/test/java/build.xml 2008-09-18 04:33:18 UTC (rev 1863)
+++ trunk/mod_cluster/test/java/build.xml 2008-09-18 07:49:10 UTC (rev 1864)
@@ -86,6 +86,7 @@
<copy file="conf/web.xml" todir="${test.classes}/conf"/>
<java dir="${test.classes}" classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
<arg value="org.jboss.mod_cluster.Maintest"/>
+ <jvmarg line="-Dcluster=${cluster}"/>
<classpath refid="tomcat.test.classpath"/>
</java>
15 years, 7 months
JBoss Native SVN: r1863 - trunk/mod_cluster/src/main/resources.
by jbossnative-commits@lists.jboss.org
Author: pferraro
Date: 2008-09-18 00:33:18 -0400 (Thu, 18 Sep 2008)
New Revision: 1863
Modified:
trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml
Log:
Add comments, defaults properties/parameters
Modified: trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml
===================================================================
--- trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml 2008-09-18 04:28:39 UTC (rev 1862)
+++ trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml 2008-09-18 04:33:18 UTC (rev 1863)
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<!--
Beans that provide JBoss AS-side functionality for mod_cluster. These
beans are all "On Demand", i.e. that are not installed unless requested.
@@ -63,15 +62,22 @@
<property name="loadBalanceFactor">1</property>
</bean>
+ <!-- Provides information to ModClusterService informing it how much load
+ this server should take. This impl calculates load factor from a
+ number of metrics and adjusts the value periodically based on runtime
+ conditions. -->
<bean name="DynamicModClusterLoadBalanceFactorProvider"
class="org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProvider"
mode="On Demand">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=LoadBalanceFactorProvider",exposedInterface=org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProviderMBean.class)</annotation>
+ <!--property name="history">10</property-->
+ <!--property name="decayFactor">2</property-->
</bean>
<!-- Other metrics sources -->
<bean name="OperatingSystemLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.OperatingSystemLoadMetricSource">
+ class="org.jboss.modcluster.load.metric.impl.OperatingSystemLoadMetricSource"
+ mode="On Demand">
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
@@ -79,31 +85,43 @@
<!-- JBossWeb load metric sources -->
<bean name="RequestProcessorLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource">
+ class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource"
+ mode="On Demand">
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
<parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <!-- Object name pattern for request processors -->
+ <!--parameter>jboss.web:type=GlobalRequestProcessor,*</parameter-->
</constructor>
</bean>
<bean name="SessionLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.SessionLoadMetricSource">
+ class="org.jboss.modcluster.load.metric.impl.SessionLoadMetricSource"
+ mode="On Demand">
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
<parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <!-- Object name pattern for session managers -->
+ <!--parameter>jboss.web:type=Manager,*</parameter-->
</constructor>
</bean>
<bean name="ThreadPoolLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.ThreadPoolLoadMetricSource">
+ class="org.jboss.modcluster.load.metric.impl.ThreadPoolLoadMetricSource"
+ mode="On Demand">
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
<parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <!-- Object name pattern for connector thread pools -->
+ <!--parameter>jboss.web:type=ThreadPool,*</parameter-->
</constructor>
</bean>
<bean name="ConnectionPoolLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.ConnectionPoolLoadMetricSource">
+ class="org.jboss.modcluster.load.metric.impl.ConnectionPoolLoadMetricSource"
+ mode="On Demand">
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
<parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <!-- Object name pattern for connector thread pools -->
+ <!--parameter>jboss.jca:service=ManagedConnectionPool,*</parameter-->
</constructor>
</bean>
@@ -114,6 +132,8 @@
<constructor>
<parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
+ <!--property name="capacity">1.0</property-->
</bean>
<bean name="SystemMemoryUsageLoadMetric"
class="org.jboss.modcluster.load.metric.impl.SystemMemoryUsageLoadMetric">
@@ -121,6 +141,8 @@
<constructor>
<parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
+ <!--property name="capacity">1.0</property-->
</bean>
<bean name="HeapMemoryUsageLoadMetric"
class="org.jboss.modcluster.load.metric.impl.HeapMemoryUsageLoadMetric">
@@ -128,6 +150,8 @@
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
+ <!--property name="capacity">1.0</property-->
</bean>
<bean name="ThreadCountLoadMetric"
class="org.jboss.modcluster.load.metric.impl.ThreadCountLoadMetric">
@@ -135,6 +159,7 @@
<constructor>
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
<property name="capacity">300</property>
</bean>
<bean name="ConnectionPoolUsageMetric"
@@ -143,6 +168,8 @@
<constructor>
<parameter><inject bean="ConnectionPoolLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
+ <!--property name="capacity">1.0</property-->
</bean>
<!-- Analogous to method=R in mod_jk -->
@@ -152,6 +179,7 @@
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
<property name="capacity">1000</property><!-- maximum capacity estimated as 1000 requests/sec -->
</bean>
@@ -162,6 +190,7 @@
<constructor>
<parameter><inject bean="SessionLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
<property name="capacity">1000</property><!-- maximum capacity estimated at 1000 sessions -->
</bean>
@@ -172,6 +201,7 @@
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
<property name="capacity">1024</property><!-- maximum capacity estimated at 1024KB/s -->
</bean>
<bean name="SendTrafficLoadMetric"
@@ -180,6 +210,7 @@
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
<property name="capacity">512</property><!-- maximum capacity estimated at 512KB/s -->
</bean>
@@ -190,6 +221,8 @@
<constructor>
<parameter><inject bean="ThreadPoolLoadMetricSource"/></parameter>
</constructor>
+ <!--property name="weight">0</property-->
+ <!--property name="capacity">1.0</property-->
</bean>
<!-- The core ModClusterService -->
15 years, 7 months
JBoss Native SVN: r1862 - trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/impl.
by jbossnative-commits@lists.jboss.org
Author: pferraro
Date: 2008-09-18 00:28:39 -0400 (Thu, 18 Sep 2008)
New Revision: 1862
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java
Log:
Apply ceiling and floor to load factor
Modified: trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java
===================================================================
--- trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java 2008-09-18 01:58:30 UTC (rev 1861)
+++ trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java 2008-09-18 04:28:39 UTC (rev 1862)
@@ -115,8 +115,11 @@
}
}
- // Convert load ratio to integer percentage and invert to express as "load factor"
- return 100 - (int) Math.round(100 * totalWeightedLoad / totalWeight);
+ // Convert load ratio to integer percentage
+ int load = (int) Math.round(100 * totalWeightedLoad / totalWeight);
+
+ // apply ceiling & floor and invert to express as "load factor"
+ return 100 - Math.max(0, Math.min(load, 100));
}
private List<Double> recordLoad(LoadMetric metric, double load)
15 years, 7 months
JBoss Native SVN: r1861 - trunk/mod_cluster/src/main/resources.
by jbossnative-commits@lists.jboss.org
Author: pferraro
Date: 2008-09-17 21:58:30 -0400 (Wed, 17 Sep 2008)
New Revision: 1861
Modified:
trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml
Log:
Naming fixes
Modified: trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml
===================================================================
--- trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml 2008-09-18 01:47:00 UTC (rev 1860)
+++ trunk/mod_cluster/src/main/resources/mod-cluster-jboss-beans.xml 2008-09-18 01:58:30 UTC (rev 1861)
@@ -71,78 +71,83 @@
<!-- Other metrics sources -->
<bean name="OperatingSystemLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.OperatingSystemLoadMetricSource"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.OperatingSystemLoadMetricSource">
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
</bean>
<!-- JBossWeb load metric sources -->
<bean name="RequestProcessorLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource">
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
- <parameter><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
</constructor>
</bean>
<bean name="SessionLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.SessionLoadMetricSource"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.SessionLoadMetricSource">
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
- <parameter><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
</constructor>
</bean>
<bean name="ThreadPoolLoadMetricSource"
- class="org.jboss.modcluster.load.metric.impl.ThreadPoolLoadMetricSource"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.ThreadPoolLoadMetricSource">
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
- <parameter><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
</constructor>
</bean>
+ <bean name="ConnectionPoolLoadMetricSource"
+ class="org.jboss.modcluster.load.metric.impl.ConnectionPoolLoadMetricSource">
+ <constructor>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+ </constructor>
+ </bean>
<!-- System/JVM metrics -->
<bean name="AverageSystemLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.AverageSystemLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.AverageSystemLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=AverageSystemLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
</constructor>
</bean>
<bean name="SystemMemoryUsageLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.SystemMemoryUsageLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.SystemMemoryUsageLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=SystemMemoryUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
</constructor>
</bean>
<bean name="HeapMemoryUsageLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.HeapMemoryUsageLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.HeapMemoryUsageLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=HeapMemoryUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
</bean>
<bean name="ThreadCountLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.ThreadCountLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.ThreadCountLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ThreadCountLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
- <parameter><inject bean="ModClusterLoadBalanceFactorProvider"/></parameter>
+ <parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
</constructor>
<property name="capacity">300</property>
</bean>
+ <bean name="ConnectionPoolUsageMetric"
+ class="org.jboss.modcluster.load.metric.impl.ConnectionPoolUsageLoadMetric">
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ConnectionPoolUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+ <constructor>
+ <parameter><inject bean="ConnectionPoolLoadMetricSource"/></parameter>
+ </constructor>
+ </bean>
<!-- Analogous to method=R in mod_jk -->
<bean name="RequestCountLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.RequestCountLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.RequestCountLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=RequestCountLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
@@ -152,8 +157,7 @@
<!-- Analogous to method=S in mod_jk -->
<bean name="ActiveSessionsLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.ActiveSessionsLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.ActiveSessionsLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ActiveSessionsLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="SessionLoadMetricSource"/></parameter>
@@ -163,8 +167,7 @@
<!-- Analogous to method=T in mod_jk -->
<bean name="ReceiveTrafficLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.ReceiveTrafficLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.ReceiveTrafficLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ReceiveTrafficLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
@@ -172,8 +175,7 @@
<property name="capacity">1024</property><!-- maximum capacity estimated at 1024KB/s -->
</bean>
<bean name="SendTrafficLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.SendTrafficLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.SendTrafficLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=SendTrafficLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="RequestProcessorLoadMetricSource"/></parameter>
@@ -183,8 +185,7 @@
<!-- Analogous to method=B in mod_jk -->
<bean name="BusyConnectorsLoadMetric"
- class="org.jboss.modcluster.load.metric.impl.BusyConnectorsLoadMetric"
- mode="On Demand">
+ class="org.jboss.modcluster.load.metric.impl.BusyConnectorsLoadMetric">
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=BusyConnectorsLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
<constructor>
<parameter><inject bean="ThreadPoolLoadMetricSource"/></parameter>
@@ -204,7 +205,7 @@
<parameter><inject bean="DynamicModClusterLoadBalanceFactorProvider"/></parameter>
<parameter><bean class="org.jboss.ha.singleton.HASingletonElectionPolicySimple"/></parameter>
</constructor>
-
+
</bean>
<!--
15 years, 7 months