diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test')
4 files changed, 290 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/build.xml b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/build.xml new file mode 100644 index 00000000..8725ba19 --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/build.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- @author Peter Rossbach --> +<project name="JkStatusTestcases" basedir="." default="test"> + <property file="../../../../build/build.properties" /> + <property file="../../../../build/build.properties.default" /> + <property name="test.report.logs" value="logs/reports" /> + <property name="test.results" value="logs/test-results" /> + + <property name="compile.optimize" value="true" /> + <property name="compile.debug" value="true" /> + <property name="compile.source" value="1.4" /> + <property name="compile.deprecation" value="true" /> + <property name="compile.nowarn" value="off" /> + <property name="compile.encoding" value="ISO-8859-1" /> + <property name="build.dir" value="build/test" /> + <property name="src.dir" value="src/share" /> + <property name="catalina.home" value="../../../../build/build" /> + + <!-- Build the classpath --> + <path id="project.classpath"> + <pathelement location="../build/classes" /> + <pathelement location="${jmx.jar}" /> + <pathelement location="${commons-logging.jar}" /> + <pathelement location="${log4j.jar}" /> + <fileset dir="${catalina.home}/common/endorsed"> + <include name="*.jar" /> + </fileset> + <fileset dir="${catalina.home}/common/lib"> + <include name="*.jar" /> + </fileset> + <fileset dir="${catalina.home}/server/lib"> + <include name="*.jar" /> + </fileset> + </path> + + <target name="build-prepare"> + <mkdir dir="${build.dir}" /> + </target> + + <target name="info" description="Shows a information about this ant script"> + <echo> + This ant script implements some testcases to verify the key functions of tomcat apache mod_jk jkstatus module. + You find this script at: ${ant.file} + </echo> + </target> + + <!-- This target compiles all sources out of the + projects source tree --> + <target name="compile" depends="build-prepare" description="This target compiles all sources out of the projects source tree"> + + <!-- Copies the static resources out of the src tree + to the build/classes dir --> + <copy todir="${build.dir}/classes"> + <fileset dir="${src.dir}"> + <include name="**" /> + <exclude name="**/*.java" /> + </fileset> + </copy> + + <!-- Compiles all sources --> + <javac destdir="${build.dir}/classes" srcdir="${src.dir}" includes="**/*.java" excludes="**/.svn/**" deprecation="${compile.deprecation}" debug="${compile.debug}" source="${compile.source}" optimize="${compile.optimize}" nowarn="${compile.nowarn}" encoding="${compile.encoding}"> + <classpath> + <path refid="project.classpath" /> + </classpath> + </javac> + </target> + + <target name="test" depends="compile" description="Run unit tests"> + <delete dir="${test.results}" /> + <mkdir dir="${test.results}" /> + <junit fork="yes" failureProperty="test.failure"> + <jvmarg value="-Dcatalina.base=${basedir}" /> + <jvmarg value="-Dcatalina.home=${catalina.home}" /> + <jvmarg value="-Dlog4j.configuration=file:conf/log4j.xml" /> + <classpath> + <pathelement location="${build.dir}/classes" /> + <path refid="project.classpath" /> + </classpath> + <formatter type="plain" usefile="false" /> + <formatter type="xml" /> + <batchtest todir="${test.results}"> + <fileset dir="${build.dir}/classes" includes="**/*Test.class" /> + </batchtest> + </junit> + <mkdir dir="${test.report.logs}" /> + <junitreport todir="${test.report.logs}"> + <fileset dir="${test.results}" /> + <report format="frames" todir="${test.report.logs}" /> + </junitreport> + <antcall target="checktest" /> + </target> + + <target name="checktest" if="test.failure"> + <fail message="some test failed" /> + </target> + + <target name="clean"> + <delete dir="${build}/dir" /> + <delete dir="build" /> + <delete dir="${test.report.logs}" /> + <delete dir="${test.results}" /> + <delete dir="logs" /> + </target> +</project> diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/jkstatus.xml b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/jkstatus.xml new file mode 100644 index 00000000..e658b76d --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/jkstatus.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<jk:status xmlns:jk="http://jakarta.apache.org"> + <jk:server name="localhost" port="80" software="Apache/2.0.54 (Win32) mod_ssl/2.0.54 OpenSSL/0.9.7g mod_jk/1.2.15" version="1.2.15" /> + <jk:balancers> + <jk:balancer id="0" name="lb" type="lb" sticky="True" stickyforce="False" retries="3" recover="60" > + <jk:member id="0" name="node1" type="ajp13" host="localhost" port="9012" address="127.0.0.1:9012" status="OK" lbfactor="1" lbvalue="1" elected="0" readed="0" transferred="0" errors="0" busy="0" /> + <jk:member id="1" name="node2" type="ajp13" host="localhost" port="9022" address="127.0.0.1:9022" status="OK" lbfactor="1" lbvalue="1" elected="0" readed="0" transferred="0" errors="0" busy="0" /> + <jk:map type="Wildchar" uri="/ClusterTest/*" context="/ClusterTest/*" /> + <jk:map type="Exact" uri="/ClusterTest" context="/ClusterTest" /> + <jk:map type="Wildchar" uri="/myapps/*" context="/myapps/*" /> + <jk:map type="Exact" uri="/myapps" context="/myapps" /> + </jk:balancer> + </jk:balancers> +</jk:status> + diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/log4j.xml b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/log4j.xml new file mode 100644 index 00000000..c31ba8ee --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/conf/log4j.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<!-- ===================================================================== --> +<!-- --> +<!-- Log4j Configuration --> +<!-- --> +<!-- ===================================================================== --> +<!-- $Id: log4j.xml 572120 2007-09-02 19:32:11Z markt $ --> +<!-- +| For more configuration infromation and examples see the Jakarta Log4j +| owebsite: http://jakarta.apache.org/log4j +--> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> + +<!-- ============================== --> +<!-- Append messages to the console --> +<!-- ==============================--> + +<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> +<param name="Target" value="System.out"/> +<layout class="org.apache.log4j.PatternLayout"> +<!--The default pattern: Date Priority [Category] Message\n--> +<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> +</layout> +</appender> + + +<category name="org.apache.jk.status" + additivity="false"> + <priority value="info" /> + <appender-ref ref="CONSOLE" /> +</category> + +<category name="org.apache.catalina" + additivity="false"> + <priority value="info" /> + <appender-ref ref="CONSOLE" /> +</category> +<category name="org.apache.tomcat" + additivity="false"> + <priority value="error" /> + <appender-ref ref="CONSOLE" /> +</category> +<category name="org.apache.naming" + additivity="false"> + <priority value="info" /> + <appender-ref ref="CONSOLE" /> +</category> +<category name="org.apache.commons" + additivity="false"> + <priority value="info" /> + <appender-ref ref="CONSOLE" /> +</category> + +<!-- Setup the Root c --> +<root> +<appender-ref ref="CONSOLE"/> +</root> +</log4j:configuration> + diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java new file mode 100644 index 00000000..3f7fc081 --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java @@ -0,0 +1,63 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jk.status; + +import java.io.IOException; +import java.io.StringReader; + +import junit.framework.TestCase; + +import org.apache.tomcat.util.digester.Digester; +import org.xml.sax.SAXException; + +/** + * @author Peter Rossbach + * + */ +public class JkStatusParserTest extends TestCase { + + public void testDigester() throws IOException, SAXException { + Digester digester = JkStatusParser.createDigester(); + String example = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + + "<jk:status xmlns:jk=\"http://tomcat.apache.org\">" + + "<jk:server name=\"localhost\" port=\"80\" software=\"Apache/2.0.58 (Unix) mod_jk/1.2.19\" version=\"1.2.19\" />" + + "<jk:balancers>" + + "<jk:balancer id=\"0\" name=\"loadbalancer\" type=\"lb\" sticky=\"True\" stickyforce=\"False\" retries=\"2\" recover=\"60\" >" + + "<jk:member id=\"0\" name=\"node1\" type=\"ajp13\" host=\"localhost\" port=\"9012\" address=\"127.0.0.1:9012\" activation=\"ACT\" state=\"OK/IDLE\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node1\" />" + + "<jk:member id=\"0\" name=\"node2\" type=\"ajp13\" host=\"localhost\" port=\"9022\" address=\"127.0.0.1:9022\" activation=\"ACT\" state=\"OK/IDLE\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node2\" />" + + "<jk:map type=\"Wildchar\" uri=\"/ClusterTest/*\" context=\"/ClusterTest/*\" />" + + "<jk:map type=\"Exact\" uri=\"/ClusterTest\" context=\"/ClusterTest\" />" + + "<jk:map type=\"Wildchar\" uri=\"/myapps/*\" context=\"/myapps/*\" />" + + "<jk:map type=\"Exact\" uri=\"/myapps\" context=\"/myapps\" />" + + "</jk:balancer>" + + "</jk:balancers>" + + "</jk:status>" ; + + StringReader reader = new StringReader(example); + JkStatus status = (JkStatus) digester + .parse(reader); + assertNotNull(status); + assertNotNull(status.getServer()); + assertEquals(1,status.getBalancers().size()); + JkBalancer balancer = (JkBalancer)status.getBalancers().get(0); + assertEquals(2,balancer.getBalancerMembers().size()); + assertEquals("node1",((JkBalancerMember)balancer.getBalancerMembers().get(0)).getName()); + assertEquals("node2",((JkBalancerMember)balancer.getBalancerMembers().get(1)).getName()); + assertEquals(4,balancer.getBalancerMappings().size()); + } + +} |