Clover coverage report -
Coverage timestamp: Sat Jul 7 2007 16:41:13 CEST
file stats: LOC: 218   Methods: 2
NCLOC: 154   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ConfigDeserializer.java - 100% 100% 100%
coverage
 1    /**
 2    * JTRunner is free software; you can redistribute it and/or modify it under the
 3    * terms of the GNU General Public License as published by the Free Software
 4    * Foundation; either version 2, or (at your option) any later version.
 5    */
 6   
 7    package jtr.config;
 8   
 9    import java.io.*;
 10   
 11    import jtr.config.enterprise.EnterpriseConfig;
 12    import jtr.config.enterprise.EnterpriseProperty;
 13    import jtr.config.jms.JMSConfig;
 14    import jtr.config.jms.JMSConnection;
 15    import jtr.config.jms.JMSConnectionFactory;
 16    import jtr.config.jms.JMSFactories;
 17    import jtr.config.jms.JMSSession;
 18    import jtr.config.remote.Node;
 19    import jtr.config.remote.Nodes;
 20    import jtr.config.ws.Binding;
 21    import jtr.config.ws.Bindings;
 22    import jtr.config.ws.WebServiceConfig;
 23    import jtr.config.ws.WebServiceOperation;
 24    import jtr.config.ws.WebServicePort;
 25    import jtr.config.ws.WebServicePortType;
 26    import jtr.config.ws.WebServiceService;
 27    import jtr.config.ws.WebServiceTypeMapping;
 28   
 29    import org.apache.commons.digester.*;
 30    import org.xml.sax.*;
 31   
 32    /**
 33    * This class is in charge of deserializing the content of the
 34    * <code>jtr.xml</code> JTR configuration file into an object oriented
 35    * representation: the <code>TestConfig</code>.
 36    *
 37    * @author Francesco Russo (frusso@dev.java.net)
 38    * @version 4.0
 39    * @since 1.0
 40    */
 41    public class ConfigDeserializer {
 42    /**
 43    * Constructor. Requires an input stream the <code>jtr.xml</code> JTR
 44    * configuration file should be read from.
 45    *
 46    * @param is
 47    * InputStream
 48    */
 49  1 public ConfigDeserializer(InputStream is) {
 50  1 input = is;
 51    }
 52   
 53    /**
 54    * Produces the object oriented representation of the <code>jtr.xml</code>
 55    * configuration file.
 56    *
 57    * @throws SAXException
 58    * @throws IOException
 59    * @return TestConfig
 60    */
 61  1 public TestConfig getConfigTree() throws SAXException, IOException {
 62  1 Digester digester = new Digester();
 63  1 digester.setValidating(true);
 64  1 digester.setNamespaceAware(true);
 65  1 digester.setErrorHandler(new JtrSaxErrorHandler());
 66  1 digester.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
 67   
 68  1 digester.addObjectCreate("test", TestConfig.class);
 69  1 digester.addSetProperties("test", StdParameters.RUNS, "epochs");
 70  1 digester.addSetProperties("test", StdParameters.ENTERPRISE, StdParameters.ENTERPRISE);
 71  1 digester.addSetProperties("test", StdParameters.JMS, StdParameters.JMS);
 72  1 digester.addSetProperties("test", StdParameters.BINDING, StdParameters.BINDING);
 73  1 digester.addSetProperties("test", StdParameters.WEBSERVICE, StdParameters.WEBSERVICE);
 74   
 75  1 digester.addObjectCreate("test/factories", Factories.class);
 76  1 digester.addObjectCreate("test/factories/factory",Factory.class);
 77  1 digester.addSetProperties("test/factories/factory","key","key");
 78  1 digester.addSetProperties("test/factories/factory","fqn","fqn");
 79  1 digester.addSetNext("test/factories/factory","addFactory");
 80  1 digester.addSetNext("test/factories","setFactories");
 81   
 82  1 digester.addObjectCreate("test/nodes", Nodes.class);
 83  1 digester.addObjectCreate("test/nodes/node", Node.class);
 84  1 digester.addSetProperties("test/nodes/node","host","host");
 85  1 digester.addSetProperties("test/nodes/node","port","port");
 86  1 digester.addSetNext("test/nodes/node","addNode");
 87  1 digester.addSetNext("test/nodes","setNodes");
 88   
 89  1 digester.addObjectCreate("test/runner", RunnerConfig.class);
 90  1 digester.addSetProperties("test/runner", StdParameters.RUNS, StdParameters.RUNS);
 91  1 digester.addSetProperties("test/runner", StdParameters.SLEEP_TIME, StdParameters.SLEEP_TIME);
 92  1 digester.addSetProperties("test/runner", StdParameters.ENTERPRISE, StdParameters.ENTERPRISE);
 93  1 digester.addSetProperties("test/runner", StdParameters.JMS, StdParameters.JMS);
 94  1 digester.addSetProperties("test/runner", StdParameters.BINDING, StdParameters.BINDING);
 95  1 digester.addSetProperties("test/runner", StdParameters.WEBSERVICE, StdParameters.WEBSERVICE);
 96  1 digester.addCallMethod("test/runner/runner-fqn", "setRunnerFqn", 1, new Class[] { String.class });
 97  1 digester.addCallParam("test/runner/runner-fqn", 0);
 98  1 digester.addCallMethod("test/runner/instance-count", "setCount", 1, new Class[] { Integer.class });
 99  1 digester.addCallParam("test/runner/instance-count", 0);
 100  1 digester.addCallMethod("test/runner/parameters-assignment-policy", "setParametersAssignmetPolicy", 1, new Class[] { String.class });
 101  1 digester.addCallParam("test/runner/parameters-assignment-policy", 0);
 102   
 103  1 digester.addObjectCreate("test/runner/parameters", ParametersMap.class);
 104  1 digester.addObjectCreate("test/runner/parameters/param", RunnerConfigParam.class);
 105  1 digester.addSetProperties("test/runner/parameters/param", "name", "name");
 106  1 digester.addSetProperties("test/runner/parameters/param", "type", "type");
 107  1 digester.addSetProperties("test/runner/parameters/param", "value", "value");
 108  1 digester.addSetNext("test/runner/parameters/param", "addParameter");
 109  1 digester.addSetNext("test/runner/parameters", "addParameterSet");
 110  1 digester.addSetNext("test/runner", "addRunner");
 111   
 112  1 digester.addObjectCreate("test/enterprise", EnterpriseConfig.class);
 113  1 digester.addSetProperties("test/enterprise", "uniqueName", "uniqueName");
 114  1 digester.addObjectCreate("test/enterprise/property", EnterpriseProperty.class);
 115  1 digester.addSetProperties("test/enterprise/property", "name", "name");
 116  1 digester.addSetProperties("test/enterprise/property", "value", "value");
 117  1 digester.addSetNext("test/enterprise/property", "addEnterpriseProperty");
 118  1 digester.addSetNext("test/enterprise", "addEnterprise");
 119   
 120    // JMS
 121  1 digester.addObjectCreate("test/jms", JMSConfig.class);
 122  1 digester.addSetProperties("test/jms", "uniqueName", "uniqueName");
 123    // queues
 124  1 digester.addCallMethod("test/jms/destinations/queues/queue", "addQueue", 2, new Class[] { String.class, String.class });
 125  1 digester.addCallParam("test/jms/destinations/queues/queue", 0, "jndi");
 126  1 digester.addCallParam("test/jms/destinations/queues/queue", 1, "property");
 127    // topics
 128  1 digester.addCallMethod("test/jms/destinations/topics/topic", "addTopic", 2, new Class[] { String.class, String.class });
 129  1 digester.addCallParam("test/jms/destinations/topics/topic", 0, "jndi");
 130  1 digester.addCallParam("test/jms/destinations/topics/topic", 1, "property");
 131    // connection-factories
 132  1 digester.addObjectCreate("test/jms/conn-factories", JMSFactories.class);
 133  1 digester.addObjectCreate("test/jms/conn-factories/conn-factory", JMSConnectionFactory.class);
 134  1 digester.addSetProperties("test/jms/conn-factories/conn-factory", "type", "type");
 135  1 digester.addSetProperties("test/jms/conn-factories/conn-factory", "jndi", "jndi");
 136  1 digester.addSetProperties("test/jms/conn-factories/conn-factory", "property", "property");
 137    // connections
 138  1 digester.addObjectCreate("test/jms/conn-factories/conn-factory/connections/connection", JMSConnection.class);
 139  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "type", "type");
 140  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "property", "property");
 141  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "userName", "userName");
 142  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "password", "password");
 143  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "clientId", "clientId");
 144  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection", "shared", "shared");
 145    // sessions
 146  1 digester.addObjectCreate("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", JMSSession.class);
 147  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", "type", "type");
 148  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", "property", "property");
 149  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", "transacted", "transacted");
 150  1 digester.addSetProperties("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", "ackMode", "ackMode");
 151  1 digester.addSetNext("test/jms/conn-factories/conn-factory/connections/connection/sessions/session", "addSession");
 152  1 digester.addSetNext("test/jms/conn-factories/conn-factory/connections/connection", "addConnection");
 153  1 digester.addSetNext("test/jms/conn-factories/conn-factory", "addConnectionFactory");
 154  1 digester.addSetNext("test/jms/conn-factories", "setConnectionFactories");
 155  1 digester.addSetNext("test/jms", "addJmsConfig");
 156   
 157    // available webservice bindings
 158  1 digester.addObjectCreate("test/bindings", Bindings.class);
 159  1 digester.addObjectCreate("test/bindings/binding", Binding.class);
 160  1 digester.addSetProperties("test/bindings/binding","uniqueName","uniqueName");
 161  1 digester.addSetProperties("test/bindings/binding","serviceNameSpace","nameSpace");
 162  1 digester.addSetProperties("test/bindings/binding","serviceName","name");
 163  1 digester.addSetProperties("test/bindings/binding","portName","portName");
 164  1 digester.addSetProperties("test/bindings/binding","operationName","operationName");
 165  1 digester.addSetProperties("test/bindings/binding","wsdlLoc","wsdlLoc");
 166  1 digester.addSetProperties("test/bindings/binding","serviceMode","serviceMode");
 167  1 digester.addSetProperties("test/bindings/binding","jaxbObjectFactory","jaxbObjectFactory");
 168  1 digester.addSetNext("test/bindings/binding","addBinding");
 169  1 digester.addSetNext("test/bindings","setBindings");
 170   
 171    // WebServices
 172  1 digester.addObjectCreate("test/webservice", WebServiceConfig.class);
 173  1 digester.addSetProperties("test/webservice", "uniqueName", "uniqueName");
 174    // services
 175  1 digester.addObjectCreate("test/webservice/services/service", WebServiceService.class);
 176  1 digester.addSetProperties("test/webservice/services/service", "nameSpace", "nameSpace");
 177  1 digester.addSetProperties("test/webservice/services/service", "name", "name");
 178    // typeMappings
 179  1 digester.addObjectCreate("test/webservice/services/service/typeMappings/typeMapping", WebServiceTypeMapping.class);
 180  1 digester.addSetProperties("test/webservice/services/service/typeMappings/typeMapping", "nameSpace", "nameSpace");
 181  1 digester.addSetProperties("test/webservice/services/service/typeMappings/typeMapping", "name", "name");
 182  1 digester.addSetProperties("test/webservice/services/service/typeMappings/typeMapping", "javaClassName", "javaClassName");
 183  1 digester.addSetNext("test/webservice/services/service/typeMappings/typeMapping","addTypeMapping");
 184    // portTypes
 185  1 digester.addObjectCreate("test/webservice/services/service/portTypes/portType", WebServicePortType.class);
 186  1 digester.addSetProperties("test/webservice/services/service/portTypes/portType", "nameSpace", "nameSpace");
 187  1 digester.addSetProperties("test/webservice/services/service/portTypes/portType", "name", "name");
 188  1 digester.addSetNext("test/webservice/services/service/portTypes/portType", "addPortType");
 189    // ports
 190  1 digester.addObjectCreate("test/webservice/services/service/ports/port", WebServicePort.class);
 191  1 digester.addSetProperties("test/webservice/services/service/ports/port", "name", "name");
 192    // operations
 193  1 digester.addObjectCreate("test/webservice/services/service/ports/port/operations/operation", WebServiceOperation.class);
 194  1 digester.addSetProperties("test/webservice/services/service/ports/port/operations/operation", "name", "name");
 195    // input message
 196  1 digester.addCallMethod("test/webservice/services/service/ports/port/operations/operation/inputMsg","setInputMsg", 2, new Class[] {String.class, String.class});
 197  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/inputMsg", 0, "name");
 198  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/inputMsg", 1, "partNames");
 199    // output message
 200  1 digester.addCallMethod("test/webservice/services/service/ports/port/operations/operation/outputMsg","setOutputMsg", 2, new Class[] {String.class, String.class});
 201  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/outputMsg", 0, "name");
 202  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/outputMsg", 1, "partNames");
 203    // fault message
 204  1 digester.addCallMethod("test/webservice/services/service/ports/port/operations/operation/faultMsg","setFaultMsg", 2, new Class[] {String.class, String.class});
 205  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/faultMsg", 0, "name");
 206  1 digester.addCallParam("test/webservice/services/service/ports/port/operations/operation/faultMsg", 1, "partNames");
 207    // add operation to port
 208  1 digester.addSetNext("test/webservice/services/service/ports/port/operations/operation", "addOperation");
 209    // ports
 210  1 digester.addSetNext("test/webservice/services/service/ports/port", "addPort");
 211    // services
 212  1 digester.addSetNext("test/webservice/services/service", "addService");
 213  1 digester.addSetNext("test/webservice", "addWebService");
 214  1 return (TestConfig) digester.parse(input);
 215    }
 216   
 217    private InputStream input;
 218    }