nagy 01/06/28 13:08:48 Modified: java soap.xml java/src/org/apache/soap/server ServiceManager.java Log: Added support for config file element to allow users to enable or disable SOAP interface to Service Manager. See http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2386 for the details. PR:2386 Revision Changes Path 1.2 +3 -0 xml-soap/java/soap.xml Index: soap.xml =================================================================== RCS file: /home/cvs/xml-soap/java/soap.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- soap.xml 2000/12/14 00:19:29 1.1 +++ soap.xml 2001/06/28 20:08:43 1.2 @@ -3,6 +3,9 @@ <soapServer> <!-- This section defines the same thing you get if you don't --> <!-- specify anything at all - aka the default --> + <serviceManager> + <option name="SOAPInterfaceEnabled" value="true" /> + </serviceManager> <configManager value="org.apache.soap.server.DefaultConfigManager" > <option name="filename" value="DeployedServices.ds" /> </configManager> 1.16 +44 -25 xml-soap/java/src/org/apache/soap/server/ServiceManager.java Index: ServiceManager.java =================================================================== RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/server/ServiceManager.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- ServiceManager.java 2001/05/17 18:25:51 1.15 +++ ServiceManager.java 2001/06/28 20:08:47 1.16 @@ -81,8 +81,8 @@ protected ConfigManager configMgr = null; protected ServletContext context = null; protected DocumentBuilder xdb = XMLParserUtils.getXMLDocBuilder(); + protected boolean soapInterfaceEnabled = true; - public ServiceManager (ServletContext context, String configFilename) { this.context = context; @@ -93,30 +93,35 @@ readConfigFile (); - smsdd = new DeploymentDescriptor (); - smsdd.setID (ServerConstants.SERVICE_MANAGER_SERVICE_NAME); - String[] svcs = new String[] { "deploy", "undeploy", "list", "query" }; - smsdd.setMethods (svcs); - smsdd.setScope (DeploymentDescriptor.SCOPE_APPLICATION); - smsdd.setProviderType (DeploymentDescriptor.PROVIDER_JAVA); - smsdd.setProviderClass ("org.apache.soap.server.ServiceManager"); - smsdd.setIsStatic (false); - - // set up mappings to send/recv DeploymentDescriptor and TypeMapping - // objects - smsdd.setMappings (new TypeMapping[] { - new TypeMapping (Constants.NS_URI_SOAP_ENC, - new QName (Constants.NS_URI_XML_SOAP, - "DeploymentDescriptor"), - "org.apache.soap.server.DeploymentDescriptor", - "org.apache.soap.encoding.soapenc.BeanSerializer", - "org.apache.soap.encoding.soapenc.BeanSerializer"), - new TypeMapping (Constants.NS_URI_SOAP_ENC, - new QName (Constants.NS_URI_XML_SOAP, - "TypeMapping"), - "org.apache.soap.server.TypeMapping", - "org.apache.soap.server.TypeMappingSerializer", - "org.apache.soap.server.TypeMappingSerializer")}); + /*If the SOAP Interface for the ServiceManager has been disabled, + don't create the DeploymentDescriptor -WAN*/ + if (soapInterfaceEnabled) + { + smsdd = new DeploymentDescriptor (); + smsdd.setID (ServerConstants.SERVICE_MANAGER_SERVICE_NAME); + String[] svcs = new String[] { "deploy", "undeploy", "list", "query" }; + smsdd.setMethods (svcs); + smsdd.setScope (DeploymentDescriptor.SCOPE_APPLICATION); + smsdd.setProviderType (DeploymentDescriptor.PROVIDER_JAVA); + smsdd.setProviderClass ("org.apache.soap.server.ServiceManager"); + smsdd.setIsStatic (false); + + // set up mappings to send/recv DeploymentDescriptor and TypeMapping + // objects + smsdd.setMappings (new TypeMapping[] { + new TypeMapping (Constants.NS_URI_SOAP_ENC, + new QName (Constants.NS_URI_XML_SOAP, + "DeploymentDescriptor"), + "org.apache.soap.server.DeploymentDescriptor", + "org.apache.soap.encoding.soapenc.BeanSerializer", + "org.apache.soap.encoding.soapenc.BeanSerializer"), + new TypeMapping (Constants.NS_URI_SOAP_ENC, + new QName (Constants.NS_URI_XML_SOAP, + "TypeMapping"), + "org.apache.soap.server.TypeMapping", + "org.apache.soap.server.TypeMappingSerializer", + "org.apache.soap.server.TypeMappingSerializer")}); + } } public void setConfigFilename (String configFilename) { @@ -190,6 +195,20 @@ if ( options != null ) configMgr.setOptions( options ); } + else + if (name.equals("serviceManager")) + { + // Now check for options + NodeList optList = elem.getElementsByTagName( "option" ); + for ( k = 0 ; optList != null && k < optList.getLength() ; k++ ) { + elem = (Element) optList.item( k ); + name = elem.getAttribute( "name" ); + String value = elem.getAttribute( "value" ) ; + if ( name == null || value == null ) continue ; + if (name.equalsIgnoreCase("SOAPInterfaceEnabled") && value.equalsIgnoreCase("false")) + soapInterfaceEnabled = false; + } + } } reader.close(); }