You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by gd...@apache.org on 2002/01/28 19:23:04 UTC
cvs commit: xml-axis/java/test/wsdd TestBadWSDD.java TestStructure.java TestUndeployment.java
gdaniels 02/01/28 10:23:03
Modified: java/docs architecture-guide.html wsddclasses.jpg
java/samples/proxy ProxyService.java
java/samples/transport FileTest.java testit.cmd
java/samples/transport/tcp AdminClient.java GetQuote.java
TCPListener.java
java/src/org/apache/axis AxisEngine.java
ConfigurationProvider.java
java/src/org/apache/axis/client AdminClient.java
AxisClient.java Service.java ServiceFactory.java
java/src/org/apache/axis/configuration FileProvider.java
NullProvider.java XMLStringProvider.java
java/src/org/apache/axis/deployment DeployableItem.java
DeploymentException.java DeploymentRegistry.java
java/src/org/apache/axis/deployment/v2dd
V2DDDeployableItem.java V2DDException.java
java/src/org/apache/axis/deployment/wsdd
WSDDBeanMapping.java WSDDChain.java
WSDDDeployableItem.java WSDDDeployment.java
WSDDDocument.java WSDDException.java
WSDDGlobalConfiguration.java WSDDHandler.java
WSDDProvider.java WSDDService.java
WSDDTargetedChain.java WSDDTransport.java
WSDDTypeMappingContainer.java WSDDUndeployment.java
java/src/org/apache/axis/deployment/wsdd/providers
WSDDBsfProvider.java WSDDComProvider.java
WSDDHandlerProvider.java WSDDJavaEJBProvider.java
WSDDJavaMsgProvider.java WSDDJavaRPCProvider.java
java/src/org/apache/axis/deployment/wsml
WSMLDeployableItem.java
java/src/org/apache/axis/encoding
DeserializationContextImpl.java
java/src/org/apache/axis/message MessageElement.java
java/src/org/apache/axis/server AxisServer.java
AxisServerFactory.java
DefaultAxisServerFactory.java
JNDIAxisServerFactory.java server-config.wsdd
java/src/org/apache/axis/utils Admin.java
resources.properties
java/test/RPCDispatch TestRPC.java TestSerializedRPC.java
java/test/encoding TestArrayListConversions.java
TestBody.java TestDeser.java TestXsiType.java
java/test/functional TestTCPTransportSample.java
TestTransportSample.java
java/test/outparams TestOutParams.java
java/test/session TestSimpleSession.java
java/test/soap TestHeaderAttrs.java
java/test/wsdd TestBadWSDD.java TestStructure.java
TestUndeployment.java
Added: java/docs engineconfig.jpg
java/samples/transport client_deploy.wsdd deploy.wsdd
java/samples/transport/tcp client_deploy.wsdd deploy.wsdd
java/src/org/apache/axis ConfigurationException.java
EngineConfiguration.java
java/src/org/apache/axis/configuration SimpleProvider.java
Removed: java/src/org/apache/axis/deployment
SimpleDeploymentManager.java
java/src/org/apache/axis/deployment/wsdd
SimpleWsddDeploymentManager.java
Log:
Merge config-work into HEAD
Revision Changes Path
1.2 +36 -12 xml-axis/java/docs/architecture-guide.html
Index: architecture-guide.html
===================================================================
RCS file: /home/cvs/xml-axis/java/docs/architecture-guide.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- architecture-guide.html 22 Jan 2002 15:35:11 -0000 1.1
+++ architecture-guide.html 28 Jan 2002 18:22:59 -0000 1.2
@@ -236,17 +236,45 @@
side handler chains. The relationships between these classes is fairly
simple:
<br><img SRC="engineclasses.jpg" height=242 width=169>
+<h4>Engine Configuration</h3>
+The EngineConfiguration interface is the means of configuring the Handler
+factories and global options of an engine instance. An instance of a
+concrete implementation of EngineConfiguration must be passed to the engine
+when it is created and the engine must be notified if the EngineConfiguration
+contents are modified. The engine keeps a reference to the EngineConfiguration
+and then uses it to obtain Handler factories and global options.
+<p>
+The EngineConfiguration interface belongs to the Message Flow subsystem
+which means that the Message Flow subsystem does not depend on the
+Administration subsystem.
<h2>
<a NAME="Administration Subsystem"></a>Administration Subsystem</h2>
-The administration subsystem provides a set of factories for runtime artefacts
-such as Chains and SOAPServices.
+The Administration subsystem provides a way of configuring Axis engines.
+The configuration information an engine needs is a collection of factories for
+runtime artefacts such as Chains and SOAPServices and a set of global
+configuration options for the engine.
+<p>
+The Message Flow subsystem's EngineConfiguration interface
+is implemented by the Administration subsystem. FileProvider enables
+an engine to be configured statically from a file containing a
+deployment descriptor which is understood by the WSDDDeployment class.
+SimpleProvider, on the other hand, enables an engine to be configured
+dynamically.
+<br><img SRC="engineconfig.jpg">
<h3>
WSDD-Based Administration</h3>
-WSDD is an XML grammer for statically configuring an administration subsystem.
-Its structure is mirrored by a class hierarchy of factories for runtime
-artefacts. The following diagram shows the classes and the types of runtime
+WSDD is an XML grammer for deployment descriptors which are used to
+statically configuring Axis engines.
+Each Handler needs configuration in terms of the concrete class name
+of a factory for the Handler, a set of options for the handler, and
+a lifecycle scope value which determines the scope of sharing of
+instances of the Handler.
+<p>
+The structure of the WSDD grammar is mirrored by a class hierarchy of factories
+for runtime artefacts.
+The following diagram shows the classes and the types of runtime
artefacts they produce (a dotted arrow means "instantiates").
-<br><img SRC="wsddclasses.jpg" height=381 width=655>
+<br><img SRC="wsddclasses.jpg">
<h2>
<a NAME="Sequence Diagrams"></a>Interaction Diagrams</h2>
@@ -272,8 +300,8 @@
<li>
The relationship between the Axis subsystems needs to be documented
and somewhat cleaned up as there is leakage of responsibilities between
-some of the subsystems. For example, WSDD has leaked into the basic engine
-architecture. Also, there is some SOAP and HTTP bias in the basic MessageContext
+some of the subsystems. For example,
+there is some SOAP and HTTP bias in the basic MessageContext
type and associated classes.</li>
<li>
@@ -323,10 +351,6 @@
how the semantics of this combined sequence compares with the sequence
formed by omitting the transport-related Handlers.
<br><img SRC="pivots2.jpg" height=413 width=658>
-<li>
-The administration subsystem is currently hardcoded to use WSDD. A generic
-set of factory interfaces needs factoring out to enable non WSDD based
-administration subsystems to be used with Axis.</li>
</ol>
</body>
1.2 +180 -170 xml-axis/java/docs/wsddclasses.jpg
<<Binary file>>
1.2 +104 -0 xml-axis/java/docs/engineconfig.jpg
<<Binary file>>
1.12 +2 -1 xml-axis/java/samples/proxy/ProxyService.java
Index: ProxyService.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/proxy/ProxyService.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ProxyService.java 3 Jan 2002 18:08:28 -0000 1.11
+++ ProxyService.java 28 Jan 2002 18:22:59 -0000 1.12
@@ -95,7 +95,8 @@
Call call = (Call) service.createCall();
SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
- service.getEngine().deployTransport("tcp", c);
+ // !!! FIXME
+ //service.getEngine().deployTransport("tcp", c);
// add TCP for proxy testing
call.addTransportPackage("samples.transport");
1.24 +13 -7 xml-axis/java/samples/transport/FileTest.java
Index: FileTest.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/transport/FileTest.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- FileTest.java 11 Jan 2002 21:42:10 -0000 1.23
+++ FileTest.java 28 Jan 2002 18:22:59 -0000 1.24
@@ -2,6 +2,8 @@
import org.apache.axis.AxisEngine;
import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.configuration.XMLStringProvider;
+import org.apache.axis.deployment.wsdd.WSDDConstants;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.client.Transport;
@@ -19,6 +21,16 @@
*/
public class FileTest {
+ static final String wsdd =
+ "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" " +
+ "xmlns:java=\"" + WSDDConstants.WSDD_JAVA + "\">\n" +
+ " <transport name=\"FileTransport\" pivot=\"java:samples.transport.FileSender\"/>\n" +
+ " <service name=\"" + WSDDConstants.WSDD_NS + "\" provider=\"java:MSG\">\n" +
+ " <parameter name=\"allowedMethods\" value=\"AdminService\"/>\n" +
+ " <parameter name=\"className\" value=\"org.apache.axis.utils.Admin\"/>\n" +
+ " </service>\n" +
+ "</deployment>";
+
public static void main(String args[]) throws Exception {
FileReader reader = new FileReader();
reader.setDaemon(true);
@@ -34,14 +46,8 @@
}
String symbol = args[0] ;
- Service service = new Service();
+ Service service = new Service(new XMLStringProvider(wsdd));
Call call = (Call) service.createCall();
-
- AxisEngine engine = service.getEngine();
-
- // Manually deploy file sender and file transport for this example
- SimpleTargetedChain c = new SimpleTargetedChain(new FileSender());
- engine.deployTransport("FileTransport", c);
call.setOperationName( new QName("urn:xmltoday-delayed-quotes", "getQuote") );
call.addParameter( "symbol", XMLType.XSD_STRING, ParameterMode.PARAM_MODE_IN );
1.3 +1 -1 xml-axis/java/samples/transport/testit.cmd
Index: testit.cmd
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/transport/testit.cmd,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- testit.cmd 17 Oct 2001 21:12:58 -0000 1.2
+++ testit.cmd 28 Jan 2002 18:22:59 -0000 1.3
@@ -1,2 +1,2 @@
-java org.apache.axis.utils.Admin server deploy.xml
+java org.apache.axis.utils.Admin server deploy.wsdd
java samples.transport.FileTest XXX
1.2 +11 -0 xml-axis/java/samples/transport/client_deploy.wsdd
1.2 +14 -0 xml-axis/java/samples/transport/deploy.wsdd
1.13 +11 -4 xml-axis/java/samples/transport/tcp/AdminClient.java
Index: AdminClient.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/transport/tcp/AdminClient.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- AdminClient.java 3 Jan 2002 18:08:28 -0000 1.12
+++ AdminClient.java 28 Jan 2002 18:22:59 -0000 1.13
@@ -57,6 +57,9 @@
import org.apache.axis.client.Call;
import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.Constants;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.configuration.FileProvider;
/**
* An admin client object, which will work with the TCP transport.
@@ -67,18 +70,22 @@
*/
public class AdminClient extends org.apache.axis.client.AdminClient {
-
public static void main(String args[]) {
Call.addTransportPackage("samples.transport");
Call.setTransportForProtocol("tcp", TCPTransport.class);
+ SimpleProvider provider =
+ new SimpleProvider(
+ new FileProvider(Constants.CLIENT_CONFIG_FILE));
+ SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
+ provider.deployTransport("tcp", c);
+
+ AdminClient.setDefaultConfiguration(provider);
+
try {
org.apache.axis.client.AdminClient client =
new org.apache.axis.client.AdminClient(System.err);
-
- SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
- client.getCall().getService().getEngine().deployTransport("tcp", c);
System.out.println(client.process(args));
}
1.17 +11 -5 xml-axis/java/samples/transport/tcp/GetQuote.java
Index: GetQuote.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/transport/tcp/GetQuote.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- GetQuote.java 11 Jan 2002 21:42:11 -0000 1.16
+++ GetQuote.java 28 Jan 2002 18:22:59 -0000 1.17
@@ -57,6 +57,9 @@
import org.apache.axis.AxisFault;
import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.Constants;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.configuration.FileProvider;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.client.Transport;
@@ -92,12 +95,15 @@
String namespace = "urn:xmltoday-delayed-quotes";
symbol = args[0] ;
-
- Service service = new Service();
- Call call = (Call)service.createCall();
-
+
+ SimpleProvider provider =
+ new SimpleProvider(
+ new FileProvider(Constants.CLIENT_CONFIG_FILE));
SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
- service.getEngine().deployTransport("tcp", c);
+ provider.deployTransport("tcp", c);
+
+ Service service = new Service(provider);
+ Call call = (Call)service.createCall();
call.setTransport(new TCPTransport());
1.15 +19 -11 xml-axis/java/samples/transport/tcp/TCPListener.java
Index: TCPListener.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/transport/tcp/TCPListener.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- TCPListener.java 3 Jan 2002 18:08:28 -0000 1.14
+++ TCPListener.java 28 Jan 2002 18:22:59 -0000 1.15
@@ -60,11 +60,17 @@
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.SimpleTargetedChain;
-import org.apache.axis.deployment.DeploymentException;
+import org.apache.axis.ConfigurationException;
+import org.apache.axis.deployment.wsdd.WSDDConstants;
+import org.apache.axis.providers.java.MsgProvider;
+import org.apache.axis.handlers.soap.SOAPService;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.configuration.XMLStringProvider;
import org.apache.axis.server.AxisServer;
import org.apache.axis.utils.Options;
import org.apache.log4j.Category;
+import javax.xml.rpc.namespace.QName;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -99,6 +105,16 @@
// becomes true when we want to quit
private boolean done = false;
+ static final String wsdd =
+ "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" " +
+ "xmlns:java=\"" + WSDDConstants.WSDD_JAVA + "\">\n" +
+ " <transport name=\"tcp\" pivot=\"java:samples.transport.tcp.TCPSender\"/>\n" +
+ " <service name=\"" + WSDDConstants.WSDD_NS + "\" provider=\"java:MSG\">\n" +
+ " <parameter name=\"allowedMethods\" value=\"AdminService\"/>\n" +
+ " <parameter name=\"className\" value=\"org.apache.axis.utils.Admin\"/>\n" +
+ " </service>\n" +
+ "</deployment>";
+
public static void main (String args[]) {
new TCPListener(args).run();
}
@@ -152,17 +168,9 @@
public void run () {
// get the input stream
if ( engine == null ) {
- engine = new AxisServer();
+ XMLStringProvider provider = new XMLStringProvider(wsdd);
+ engine = new AxisServer(provider);
engine.init();
-
- SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
-
- try {
- engine.deployTransport(transportName, c);
- } catch (DeploymentException e) {
- // !!! We're toast. What to do about it?
- System.exit(-1);
- }
}
/* Place the Request message in the MessagContext object - notice */
1.2 +11 -0 xml-axis/java/samples/transport/tcp/client_deploy.wsdd
1.2 +5 -0 xml-axis/java/samples/transport/tcp/deploy.wsdd
1.65 +82 -179 xml-axis/java/src/org/apache/axis/AxisEngine.java
Index: AxisEngine.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/AxisEngine.java,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- AxisEngine.java 26 Jan 2002 02:50:51 -0000 1.64
+++ AxisEngine.java 28 Jan 2002 18:22:59 -0000 1.65
@@ -55,9 +55,7 @@
package org.apache.axis;
-import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.DeploymentException;
-import org.apache.axis.deployment.wsdd.*;
import org.apache.axis.encoding.DeserializerFactory;
import org.apache.axis.encoding.TypeMapping;
import org.apache.axis.encoding.Serializer;
@@ -84,6 +82,7 @@
* handler/service registries and loading properties.
*
* @author Glen Daniels (gdaniels@macromedia.com)
+ * @author Glyn Normington (glyn@apache.org)
*/
public abstract class AxisEngine extends BasicHandler
{
@@ -99,11 +98,11 @@
public static final String PROP_SYNC_CONFIG = "syncConfiguration";
public static final String PROP_SEND_XSI = "sendXsiTypes";
- /** Our go-to guy for configuration... */
- protected transient ConfigurationProvider configProvider;
+ // Default admin. password
+ private static final String DEFAULT_ADMIN_PASSWORD = "admin";
- protected DeploymentRegistry myRegistry =
- new SimpleWsddDeploymentManager();
+ /** Our go-to guy for configuration... */
+ protected EngineConfiguration config;
/** Has the user changed the password yet? */
protected boolean _hasSafePassword = false;
@@ -119,12 +118,10 @@
* scope", have it store things in this Session.
*/
private Session session = new SimpleSession();
-
- protected WSDDGlobalConfiguration myGlobalConfig = null;
-
+
/**
* What actor URIs hold for the entire engine?
- */
+ */
private ArrayList actorURIs = new ArrayList();
/**
@@ -134,7 +131,7 @@
private static ThreadLocal currentMessageContext = new ThreadLocal();
/**
- * Set the active message context.
+ * Set the active message context.
*
* @param mc - the new active message context.
*/
@@ -143,7 +140,7 @@
}
/**
- * Get the active message context.
+ * Get the active message context.
*
* @return the current active message context
*/
@@ -152,22 +149,19 @@
}
/**
- * No-arg constructor.
+ * No-arg constructor. Not used.
*
*/
- public AxisEngine()
- {
- // !!! Set up default configuration?
- init();
-
- if (category.isDebugEnabled()) {
- category.debug(JavaUtils.getMessage("exit01", "AxisEngine"));
- }
- }
+ private AxisEngine() {}
- public AxisEngine(ConfigurationProvider configProvider)
+ /**
+ * Construct an AxisEngine using the specified engine configuration.
+ *
+ * @param config the EngineConfiguration for this engine
+ */
+ public AxisEngine(EngineConfiguration config)
{
- this.configProvider = configProvider;
+ this.config = config;
init();
}
@@ -183,11 +177,11 @@
//getTypeMappingRegistry().setParent(SOAPTypeMappingRegistry.getSingleton());
try {
- configProvider.configureEngine(this);
+ config.configureEngine(this);
} catch (Exception e) {
throw new InternalException(e);
}
-
+
if (category.isDebugEnabled()) {
category.debug(JavaUtils.getMessage("exit00", "AxisEngine::init"));
}
@@ -201,13 +195,17 @@
return;
try {
- configProvider.writeEngineConfig(this);
+ config.writeEngineConfig(this);
} catch (Exception e) {
System.err.println(JavaUtils.getMessage("saveConfigFail00"));
e.printStackTrace();
}
}
+ public EngineConfiguration getConfig() {
+ return config;
+ }
+
public boolean hasSafePassword()
{
return _hasSafePassword;
@@ -224,75 +222,68 @@
{
this.shouldSaveConfig = shouldSaveConfig;
}
-
- /**
- * (should throw more specific exceptions)
- */
+
public Handler getHandler(String name) throws AxisFault
{
- return myRegistry.getHandler(new QName(null, name));
+ try {
+ return config.getHandler(new QName(null, name));
+ } catch (ConfigurationException e) {
+ throw new AxisFault(e);
+ }
}
-
- /**
- * (should throw more specific exceptions)
- */
+
public Handler getService(String name) throws AxisFault
{
- return myRegistry.getService(new QName(null, name));
+ try {
+ return config.getService(new QName(null, name));
+ } catch (ConfigurationException e) {
+ throw new AxisFault(e);
+ }
}
-
+
public Handler getTransport(String name) throws AxisFault
{
- return myRegistry.getTransport(new QName(null, name));
+ try {
+ return config.getTransport(new QName(null, name));
+ } catch (ConfigurationException e) {
+ throw new AxisFault(e);
+ }
}
- public DeploymentRegistry getDeploymentRegistry()
- {
- return myRegistry;
- }
-
public TypeMappingRegistry getTypeMappingRegistry()
{
TypeMappingRegistry tmr = null;
- tmr = myRegistry.getTypeMappingRegistry();
-
+ try {
+ tmr = config.getTypeMappingRegistry();
+ } catch (ConfigurationException e) {
+ category.error(e);
+ }
+
return tmr;
}
-
+
public Handler getGlobalRequest()
- throws Exception
+ throws ConfigurationException
{
- Handler h = null;
- if (myGlobalConfig != null) {
- WSDDRequestFlow reqFlow = myGlobalConfig.getRequestFlow();
- if (reqFlow != null)
- h = reqFlow.getInstance(myRegistry);
- }
- return h;
+ return config.getGlobalRequest();
}
-
+
public Handler getGlobalResponse()
- throws Exception
+ throws ConfigurationException
{
- Handler h = null;
- if (myGlobalConfig != null) {
- WSDDResponseFlow respFlow = myGlobalConfig.getResponseFlow();
- if (respFlow != null)
- h = respFlow.getInstance(myRegistry);
- }
- return h;
+ return config.getGlobalResponse();
}
-
+
public ArrayList getActorURIs()
{
return actorURIs;
}
-
+
public void addActorURI(String uri)
{
actorURIs.add(uri);
}
-
+
public void removeActorURI(String uri)
{
actorURIs.remove(uri);
@@ -304,7 +295,7 @@
* An AxisEngine may define another specific AxisEngine to be used
* by newly created Clients. For instance, a server may
* create an AxisClient and allow deployment to it. Then
- * the server's services may access the AxisClient's deployed
+ * the server's services may access the AxisClient's deployed
* handlers and transports.
*********************************************************************
*/
@@ -322,143 +313,56 @@
/**
* List of options which should be converted from Strings to Booleans
- * automatically.
- */
- static String [] booleanOptions = new String [] {
+ * automatically. Note that these options are common to all XML
+ * web services.
+ */
+ private static final String [] BOOLEAN_OPTIONS = new String [] {
PROP_DOMULTIREFS, PROP_SEND_XSI, PROP_XML_DECL
};
/**
- * Deploy a WSDD document to this engine. This will either add or
- * remove Handlers/Services/Transports/etc. depending on whether the
- * WSDD is a <deployment> or an <undeployment>
- *
- * @param doc the WSDD document to deploy.
- * @throws DeploymentException if there is a problem.
+ * Normalise the engine's options.
+ * <p>
+ * Convert boolean options from String to Boolean and default
+ * any ommitted boolean options to TRUE. Default the admin.
+ * password.
*/
- public void deployWSDD(WSDDDocument doc) throws DeploymentException
- {
- myRegistry.deploy(doc);
- myGlobalConfig = myRegistry.getGlobalConfiguration();
- if (myGlobalConfig != null)
- setOptions(myGlobalConfig.getParametersTable());
-
+ private void normaliseOptions() {
// Convert boolean options to Booleans so we don't need to use
// string comparisons. Default is "true".
-
- for (int i = 0; i < booleanOptions.length; i++) {
- Object val = getOption(booleanOptions[i]);
+
+ for (int i = 0; i < BOOLEAN_OPTIONS.length; i++) {
+ Object val = getOption(BOOLEAN_OPTIONS[i]);
if (val != null) {
if (val instanceof Boolean)
continue;
if (val instanceof String &&
"false".equalsIgnoreCase((String)val)) {
- setOption(booleanOptions[i], Boolean.FALSE);
+ setOption(BOOLEAN_OPTIONS[i], Boolean.FALSE);
continue;
}
}
// If it was null or not "false"...
- setOption(booleanOptions[i], Boolean.TRUE);
+ setOption(BOOLEAN_OPTIONS[i], Boolean.TRUE);
}
-
+
// Deal with admin password's default value.
if (getOption(PROP_PASSWORD) == null) {
- setOption(PROP_PASSWORD, "admin");
+ setOption(PROP_PASSWORD, DEFAULT_ADMIN_PASSWORD);
} else {
setAdminPassword((String)getOption(PROP_PASSWORD));
}
}
-
- /**
- * Deploy a Handler into our handler registry
- */
- public void deployHandler(String key, Handler handler)
- throws DeploymentException
- {
- handler.setName(key);
- WSDDDocument doc = (WSDDDocument)myRegistry.getConfigDocument();
- WSDDHandler newHandler = new WSDDHandler();
- newHandler.setName(key);
- newHandler.setType(new QName(WSDDConstants.WSDD_JAVA,
- handler.getClass().getName()));
- newHandler.setOptionsHashtable(handler.getOptions());
- myRegistry.deployHandler(newHandler);
- }
/**
- * Undeploy (remove) a Handler from the handler registry
+ * (Re-)load the global options from the registry.
*/
- public void undeployHandler(String key)
- throws DeploymentException
- {
- myRegistry.removeDeployedItem(new QName("", key));
- }
+ public void refreshGlobalOptions() throws ConfigurationException {
+ Hashtable globalOptions = config.getGlobalOptions();
+ if (globalOptions != null)
+ setOptions(globalOptions);
- /**
- * Deploy a Service into our service registry
- */
- public void deployService(String key, SOAPService service)
- throws DeploymentException
- {
- category.info(JavaUtils.getMessage("deployService00", key, this.toString()));
- service.setName(key);
- service.setEngine(this);
-
- WSDDService newService = new WSDDService();
- newService.setName(key);
- newService.setOptionsHashtable(service.getOptions());
- newService.setCachedService(service);
-
- Handler pivot = service.getPivotHandler();
- if (pivot == null) {
- throw new DeploymentException(JavaUtils.getMessage("noPivot01"));
- }
-
- if (pivot instanceof RPCProvider) {
- newService.setProviderQName(WSDDConstants.JAVARPC_PROVIDER);
- } else if (pivot instanceof MsgProvider) {
- newService.setProviderQName(WSDDConstants.JAVAMSG_PROVIDER);
- } else {
- newService.setProviderQName(WSDDConstants.HANDLER_PROVIDER);
- newService.setParameter("handlerClass", pivot.getClass().getName());
- }
- myRegistry.deployService(newService);
- }
-
- /**
- * Undeploy (remove) a Service from the handler registry
- */
- public void undeployService(String key)
- throws DeploymentException
- {
- myRegistry.undeployService(new QName("", key));
- }
-
- /**
- * Deploy a Transport
- */
- public void deployTransport(String key, SimpleTargetedChain transport)
- throws DeploymentException
- {
- transport.setName(key);
- WSDDTransport wt = new WSDDTransport();
- wt.setName(key);
- wt.setOptionsHashtable(transport.getOptions());
- // !!! Request flow?
- // !!! Response flow?
- wt.setPivotQName(new QName(WSDDConstants.WSDD_JAVA,
- transport.getPivotHandler().getClass().getName()));
-
- myRegistry.deployTransport(wt);
- }
-
- /**
- * Undeploy (remove) a client Transport
- */
- public void undeployTransport(String key)
- throws DeploymentException
- {
- myRegistry.undeployTransport(new QName("", key));
+ normaliseOptions();
}
/**
@@ -469,5 +373,4 @@
public Session getApplicationSession () {
return session;
}
-
};
1.4 +4 -0 xml-axis/java/src/org/apache/axis/ConfigurationProvider.java
Index: ConfigurationProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ConfigurationProvider.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ConfigurationProvider.java 30 Oct 2001 16:46:34 -0000 1.3
+++ ConfigurationProvider.java 28 Jan 2002 18:22:59 -0000 1.4
@@ -54,6 +54,8 @@
*/
package org.apache.axis;
+import org.apache.axis.deployment.DeploymentRegistry;
+
/**
* ConfigurationProvider is an interface which represents a source of
* configuration information for an AxisEngine. Concrete implementations
@@ -81,4 +83,6 @@
* @throws Exception if there was a problem
*/
public void writeEngineConfig(AxisEngine engine) throws Exception;
+
+ public DeploymentRegistry getDeploymentRegistry();
}
1.2 +98 -0 xml-axis/java/src/org/apache/axis/ConfigurationException.java
1.2 +138 -0 xml-axis/java/src/org/apache/axis/EngineConfiguration.java
1.50 +27 -1 xml-axis/java/src/org/apache/axis/client/AdminClient.java
Index: AdminClient.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/AdminClient.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- AdminClient.java 3 Dec 2001 23:53:12 -0000 1.49
+++ AdminClient.java 28 Jan 2002 18:23:00 -0000 1.50
@@ -56,6 +56,7 @@
package org.apache.axis.client ;
import org.apache.axis.AxisFault;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.transport.http.HTTPConstants;
import org.apache.axis.utils.JavaUtils;
@@ -89,6 +90,21 @@
static Category category =
Category.getInstance(AdminClient.class.getName());
+ private static ThreadLocal defaultConfiguration = new ThreadLocal();
+
+ /**
+ * If the user calls this with an EngineConfiguration object, all
+ * AdminClients on this thread will use that EngineConfiguration
+ * rather than the default one. This is primarily to enable the
+ * deployment of custom transports and handlers.
+ *
+ * @param config the EngineConfiguration which should be used
+ */
+ public static void setDefaultConfiguration(EngineConfiguration config)
+ {
+ defaultConfiguration.set(config);
+ }
+
protected PrintWriter _log;
protected Call call;
@@ -98,7 +114,17 @@
public AdminClient()
{
try {
- Service service = new Service();
+ // Initialize our Service - allow the user to override the
+ // default configuration with a thread-local version (see
+ // setDefaultConfiguration() above)
+ EngineConfiguration config =
+ (EngineConfiguration)defaultConfiguration.get();
+ Service service;
+ if (config != null) {
+ service = new Service(config);
+ } else {
+ service = new Service();
+ }
call = (Call) service.createCall();
} catch (JAXRPCException e) {
category.fatal(JavaUtils.getMessage("couldntCall00"), e);
1.36 +3 -3 xml-axis/java/src/org/apache/axis/client/AxisClient.java
Index: AxisClient.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/AxisClient.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- AxisClient.java 10 Jan 2002 20:00:59 -0000 1.35
+++ AxisClient.java 28 Jan 2002 18:23:00 -0000 1.36
@@ -57,7 +57,7 @@
import org.apache.axis.AxisEngine;
import org.apache.axis.AxisFault;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.Constants;
import org.apache.axis.Handler;
import org.apache.axis.MessageContext;
@@ -80,9 +80,9 @@
static Category category =
Category.getInstance(AxisClient.class.getName());
- public AxisClient(ConfigurationProvider provider)
+ public AxisClient(EngineConfiguration config)
{
- super(provider);
+ super(config);
}
public AxisClient()
1.38 +11 -11 xml-axis/java/src/org/apache/axis/client/Service.java
Index: Service.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Service.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- Service.java 28 Jan 2002 16:26:37 -0000 1.37
+++ Service.java 28 Jan 2002 18:23:00 -0000 1.38
@@ -58,7 +58,7 @@
import javax.wsdl.extensions.soap.SOAPAddress;
import org.apache.axis.AxisEngine;
import org.apache.axis.Constants;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.AxisFault;
import org.apache.axis.configuration.FileProvider;
import org.apache.axis.utils.JavaUtils;
@@ -106,7 +106,7 @@
private javax.wsdl.Service wsdlService = null ;
private boolean maintainSession = false ;
- private ConfigurationProvider configProvider =
+ private EngineConfiguration config =
new FileProvider(Constants.CLIENT_CONFIG_FILE);
Definition getWSDLDefinition() {
@@ -119,7 +119,7 @@
protected AxisClient getAxisClient()
{
- return new AxisClient(configProvider);
+ return new AxisClient(config);
}
/**
@@ -133,11 +133,11 @@
/**
* Constructs a new Service object as above, but also passing in
- * the ConfigurationProvider which should be used to set up the
+ * the EngineConfiguration which should be used to set up the
* AxisClient.
*/
- public Service(ConfigurationProvider configProvider) {
- this.configProvider = configProvider;
+ public Service(EngineConfiguration config) {
+ this.config = config;
engine = getAxisClient();
}
@@ -492,17 +492,17 @@
}
/**
- * Set this Service's configuration provider.
+ * Set this Service's engine configuration.
*
* Note that since all of the constructors create the AxisClient right
* now, this is basically a no-op. Putting it in now so that we can make
* lazy engine instantiation work, and not have to duplicate every single
- * Service constructor with a ConfigurationProvider argument.
+ * Service constructor with a EngineConfiguration argument.
*
- * @param configProvider the ConfigurationProvider we want to use.
+ * @param config the EngineConfiguration we want to use.
*/
- public void setConfigProvider(ConfigurationProvider configProvider) {
- this.configProvider = configProvider;
+ public void setEngineConfiguration(EngineConfiguration config) {
+ this.config = config;
}
/**
1.2 +17 -8 xml-axis/java/src/org/apache/axis/client/ServiceFactory.java
Index: ServiceFactory.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/ServiceFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ServiceFactory.java 7 Dec 2001 23:39:21 -0000 1.1
+++ ServiceFactory.java 28 Jan 2002 18:23:00 -0000 1.2
@@ -1,6 +1,6 @@
package org.apache.axis.client;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.AxisFault;
import org.apache.axis.Constants;
import org.apache.axis.configuration.FileProvider;
@@ -19,8 +19,14 @@
*/
public class ServiceFactory {
- private static FileProvider defaultConfigProvider =
+ private static FileProvider defaultEngineConfig =
new FileProvider(Constants.CLIENT_CONFIG_FILE);
+ private static ThreadLocal threadDefaultConfig = new ThreadLocal();
+
+ public static void setThreadDefaultConfig(EngineConfiguration config)
+ {
+ threadDefaultConfig.set(config);
+ }
/**
* Obtain an AxisClient reference, using JNDI if possible, otherwise
@@ -29,9 +35,9 @@
* name so we find it next time.
*
* @param name the JNDI name we're interested in
- * @param configProvider a ConfigurationProvider which should be used
- * to configure any engine we end up creating, or
- * null to use the default configuration pattern.
+ * @param engineConfig a EngineConfiguration which should be used
+ * to configure any engine we end up creating, or
+ * null to use the default configuration pattern.
*/
static public Service getService(Map environment)
throws JAXRPCException
@@ -39,10 +45,13 @@
Service service = null;
InitialContext context = null;
- ConfigurationProvider configProvider =
- (ConfigurationProvider)environment.get("configProvider");
+ EngineConfiguration configProvider =
+ (EngineConfiguration)environment.get("engineConfig");
+ if (configProvider == null)
+ configProvider = (EngineConfiguration)threadDefaultConfig.get();
+
if (configProvider == null)
- configProvider = defaultConfigProvider;
+ configProvider = defaultEngineConfig;
// First check to see if JNDI works
// !!! Might we need to set up context parameters here?
1.15 +132 -54 xml-axis/java/src/org/apache/axis/configuration/FileProvider.java
Index: FileProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/configuration/FileProvider.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FileProvider.java 9 Jan 2002 15:10:57 -0000 1.14
+++ FileProvider.java 28 Jan 2002 18:23:00 -0000 1.15
@@ -53,21 +53,26 @@
* <http://www.apache.org/>.
*/
- package org.apache.axis.configuration;
+package org.apache.axis.configuration;
import org.apache.axis.AxisEngine;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.ConfigurationException;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.Handler;
+import org.apache.axis.deployment.wsdd.WSDDDeployment;
import org.apache.axis.deployment.wsdd.WSDDDocument;
+import org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration;
+import org.apache.axis.encoding.TypeMappingRegistry;
import org.apache.axis.utils.Admin;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Document;
-import java.io.File;
+import javax.xml.rpc.namespace.QName;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.StringWriter;
-import java.util.Properties;
+import java.util.Hashtable;
/**
* A simple ConfigurationProvider that uses the Admin class to read +
@@ -75,15 +80,16 @@
*
* @author Glen Daniels (gdaniels@macromedia.com)
*/
-public class FileProvider implements ConfigurationProvider
-{
+public class FileProvider implements EngineConfiguration {
protected String sep = System.getProperty("file.separator");
+ protected WSDDDeployment deployment = null;
+
String basepath = ".";
String filename;
-
+
InputStream myInputStream = null;
-
+
// Should we search the classpath for the file if we don't find it in
// the specified location?
boolean searchClasspath = true;
@@ -92,8 +98,7 @@
* Constructor which accesses a file in the current directory of the
* engine.
*/
- public FileProvider(String filename)
- {
+ public FileProvider(String filename) {
this.filename = filename;
}
@@ -101,72 +106,145 @@
* Constructor which accesses a file relative to a specific base
* path.
*/
- public FileProvider(String basepath, String filename)
- {
+ public FileProvider(String basepath, String filename) {
this.basepath = basepath;
this.filename = filename;
}
-
+
/**
* Constructor which takes an input stream directly.
* Note: The configuration will be read-only in this case!
- */
- public FileProvider(InputStream is)
- {
+ */
+ public FileProvider(InputStream is) {
myInputStream = is;
}
-
+
+ public WSDDDeployment getDeployment() {
+ return deployment;
+ }
+
+ public void setDeployment(WSDDDeployment deployment) {
+ this.deployment = deployment;
+ }
+
/**
- * Determine whether or not we will look for a "server-config.wsdd" file
+ * Determine whether or not we will look for a "*-config.wsdd" file
* on the classpath if we don't find it in the specified location.
- *
+ *
* @param searchClasspath true if we should search the classpath
- */
- public void setSearchClasspath(boolean searchClasspath)
- {
+ */
+ public void setSearchClasspath(boolean searchClasspath) {
this.searchClasspath = searchClasspath;
}
- public void configureEngine(AxisEngine engine) throws Exception
- {
- if (myInputStream == null) {
- try {
- myInputStream = new FileInputStream(basepath + sep + filename);
- } catch (Exception e) {
- if (searchClasspath) {
- myInputStream = engine.
- getClass().getResourceAsStream(filename);
+ public void configureEngine(AxisEngine engine) throws ConfigurationException {
+ try {
+ if (myInputStream == null) {
+ try {
+ myInputStream = new FileInputStream(basepath + sep + filename);
+ } catch (Exception e) {
+ if (searchClasspath) {
+ myInputStream = engine.getClass().getResourceAsStream(filename);
+ }
}
}
- }
-
- if (myInputStream == null) {
- throw new Exception("No engine configuration file - aborting!");
- }
- WSDDDocument doc = new WSDDDocument(XMLUtils.newDocument(myInputStream));
- engine.deployWSDD(doc);
-
- myInputStream = null;
+ if (myInputStream == null) {
+ throw new ConfigurationException("No engine configuration file - aborting!");
+ }
+
+ WSDDDocument doc = new WSDDDocument(XMLUtils.newDocument(myInputStream));
+ deployment = doc.getDeployment();
+
+ deployment.configureEngine(engine);
+ engine.refreshGlobalOptions();
+
+ myInputStream = null;
+ } catch (Exception e) {
+ throw new ConfigurationException(e);
+ }
}
/**
* Save the engine configuration. In case there's a problem, we
* write it to a string before saving it out to the actual file so
* we don't screw up the file.
- */
- public void writeEngineConfig(AxisEngine engine) throws Exception
- {
- // If there's no filename then we must have created this with just
- // an InputStream - in which case the config stuff is read-only
- if ( filename == null ) return ;
-
- Document doc = Admin.listConfig(engine);
- StringWriter writer = new StringWriter();
- XMLUtils.DocumentToWriter(doc, writer);
- writer.close();
- FileOutputStream fos = new FileOutputStream(basepath + sep + filename);
- fos.write(writer.getBuffer().toString().getBytes());
- fos.close();
+ */
+ public void writeEngineConfig(AxisEngine engine) throws ConfigurationException {
+ try {
+ // If there's no filename then we must have created this with just
+ // an InputStream - in which case the config stuff is read-only
+ if (filename == null) return;
+
+ Document doc = Admin.listConfig(engine);
+ StringWriter writer = new StringWriter();
+ XMLUtils.DocumentToWriter(doc, writer);
+ writer.close();
+ FileOutputStream fos = new FileOutputStream(basepath + sep + filename);
+ fos.write(writer.getBuffer().toString().getBytes());
+ fos.close();
+ } catch (Exception e) {
+ throw new ConfigurationException(e);
+ }
+ }
+
+ /**
+ * retrieve an instance of the named handler
+ * @param qname XXX
+ * @return XXX
+ * @throws ConfigurationException XXX
+ */
+ public Handler getHandler(QName qname) throws ConfigurationException {
+ return deployment.getHandler(qname);
}
+
+ /**
+ * retrieve an instance of the named service
+ * @param qname XXX
+ * @return XXX
+ * @throws ConfigurationException XXX
+ */
+ public Handler getService(QName qname) throws ConfigurationException {
+ return deployment.getService(qname);
+ }
+
+ /**
+ * retrieve an instance of the named transport
+ * @param qname XXX
+ * @return XXX
+ * @throws ConfigurationException XXX
+ */
+ public Handler getTransport(QName qname) throws ConfigurationException {
+ return deployment.getTransport(qname);
+ }
+
+ public TypeMappingRegistry getTypeMappingRegistry() throws ConfigurationException {
+ return deployment.getTypeMappingRegistry();
+ }
+
+ /**
+ * Returns a global request handler.
+ */
+ public Handler getGlobalRequest() throws ConfigurationException {
+ return deployment.getGlobalRequest();
+ }
+
+ /**
+ * Returns a global response handler.
+ */
+ public Handler getGlobalResponse() throws ConfigurationException {
+ return deployment.getGlobalResponse();
+ }
+
+ /**
+ * Returns the global configuration options.
+ */
+ public Hashtable getGlobalOptions() throws ConfigurationException {
+ WSDDGlobalConfiguration globalConfig = deployment.getGlobalConfiguration();
+ if (globalConfig != null)
+ return globalConfig.getParametersTable();
+
+ return null;
+ }
+
}
1.2 +43 -4 xml-axis/java/src/org/apache/axis/configuration/NullProvider.java
Index: NullProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/configuration/NullProvider.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NullProvider.java 31 Oct 2001 23:50:19 -0000 1.1
+++ NullProvider.java 28 Jan 2002 18:23:00 -0000 1.2
@@ -56,20 +56,59 @@
package org.apache.axis.configuration;
import org.apache.axis.AxisEngine;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.ConfigurationException;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.Handler;
+import org.apache.axis.encoding.TypeMapping;
+import org.apache.axis.encoding.TypeMappingRegistry;
+
+import javax.xml.rpc.namespace.QName;
+import java.util.Hashtable;
/**
* A do-nothing ConfigurationProvider
*
* @author Glen Daniels (gdaniels@macromedia.com)
*/
-public class NullProvider implements ConfigurationProvider
+public class NullProvider implements EngineConfiguration
{
- public void configureEngine(AxisEngine engine) throws Exception
+ public void configureEngine(AxisEngine engine) throws ConfigurationException
{
}
- public void writeEngineConfig(AxisEngine engine) throws Exception
+ public void writeEngineConfig(AxisEngine engine) throws ConfigurationException
{
+ }
+
+ public Hashtable getGlobalOptions() throws ConfigurationException {
+ return null;
+ }
+
+ public Handler getGlobalResponse() throws ConfigurationException {
+ return null;
+ }
+
+ public Handler getGlobalRequest() throws ConfigurationException {
+ return null;
+ }
+
+ public TypeMappingRegistry getTypeMappingRegistry() throws ConfigurationException {
+ return null;
+ }
+
+ public TypeMapping getTypeMapping(String encodingStyle) throws ConfigurationException {
+ return null;
+ }
+
+ public Handler getTransport(QName qname) throws ConfigurationException {
+ return null;
+ }
+
+ public Handler getService(QName qname) throws ConfigurationException {
+ return null;
+ }
+
+ public Handler getHandler(QName qname) throws ConfigurationException {
+ return null;
}
}
1.5 +11 -12 xml-axis/java/src/org/apache/axis/configuration/XMLStringProvider.java
Index: XMLStringProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/configuration/XMLStringProvider.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XMLStringProvider.java 30 Oct 2001 16:46:35 -0000 1.4
+++ XMLStringProvider.java 28 Jan 2002 18:23:00 -0000 1.5
@@ -56,13 +56,15 @@
package org.apache.axis.configuration;
import org.apache.axis.AxisEngine;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.ConfigurationException;
+import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.utils.Admin;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import java.io.StringReader;
+import java.io.ByteArrayInputStream;
/**
* A simple ConfigurationProvider that uses the Admin class to
@@ -72,7 +74,7 @@
*
* @author Glen Daniels (gdaniels@macromedia.com)
*/
-public class XMLStringProvider implements ConfigurationProvider
+public class XMLStringProvider extends FileProvider
{
String xmlConfiguration;
@@ -84,20 +86,17 @@
*/
public XMLStringProvider(String xmlConfiguration)
{
+ super(new ByteArrayInputStream(xmlConfiguration.getBytes()));
this.xmlConfiguration = xmlConfiguration;
}
- public void configureEngine(AxisEngine engine) throws Exception
- {
- InputSource is = new InputSource(new StringReader(xmlConfiguration));
-
- Document doc = XMLUtils.newDocument(is);
-
- Admin.processEngineConfig(doc, engine);
+ public void writeEngineConfig(AxisEngine engine)
+ throws ConfigurationException {
+ // NOOP
}
- public void writeEngineConfig(AxisEngine engine) throws Exception
- {
- // NOOP
+ public void configureEngine(AxisEngine engine) throws ConfigurationException {
+ myInputStream = new ByteArrayInputStream(xmlConfiguration.getBytes());
+ super.configureEngine(engine);
}
}
1.2 +238 -0 xml-axis/java/src/org/apache/axis/configuration/SimpleProvider.java
1.14 +2 -4 xml-axis/java/src/org/apache/axis/deployment/DeployableItem.java
Index: DeployableItem.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/DeployableItem.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- DeployableItem.java 14 Nov 2001 17:26:18 -0000 1.13
+++ DeployableItem.java 28 Jan 2002 18:23:00 -0000 1.14
@@ -55,6 +55,7 @@
package org.apache.axis.deployment;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import javax.xml.rpc.namespace.QName;
@@ -80,9 +81,6 @@
* @return a Handler which is assumedly the correct type
* @throws Exception (!!! probably should be more specific)
*/
- public Handler getInstance(DeploymentRegistry registry)
+ public Handler getInstance(EngineConfiguration registry)
throws Exception;
-
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException;
}
1.8 +2 -5 xml-axis/java/src/org/apache/axis/deployment/DeploymentException.java
Index: DeploymentException.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/DeploymentException.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DeploymentException.java 3 Dec 2001 22:49:23 -0000 1.7
+++ DeploymentException.java 28 Jan 2002 18:23:00 -0000 1.8
@@ -54,17 +54,14 @@
*/
package org.apache.axis.deployment;
-import org.apache.axis.AxisFault;
+import org.apache.axis.ConfigurationException;
/**
*
*/
public class DeploymentException
- extends AxisFault
+ extends ConfigurationException
{
- public DeploymentException() {
- }
-
public DeploymentException(Exception e) {
super(e);
}
1.21 +71 -12 xml-axis/java/src/org/apache/axis/deployment/DeploymentRegistry.java
Index: DeploymentRegistry.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/DeploymentRegistry.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- DeploymentRegistry.java 26 Jan 2002 02:50:51 -0000 1.20
+++ DeploymentRegistry.java 28 Jan 2002 18:23:00 -0000 1.21
@@ -55,6 +55,8 @@
package org.apache.axis.deployment;
import org.apache.axis.Handler;
+import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.handlers.soap.SOAPService;
import org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration;
import org.apache.axis.deployment.wsdd.WSDDDocument;
import org.apache.axis.encoding.TypeMapping;
@@ -72,6 +74,7 @@
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Enumeration;
+import java.util.Hashtable;
/**
* The DeploymentRegistry abstract class takes the place of the
@@ -83,17 +86,6 @@
public abstract class DeploymentRegistry
implements Serializable
{
- public abstract DeploymentDocument getConfigDocument()
- throws DeploymentException;
-
- /**
- * retrieve the global configuration for the axis engine
- * @return XXX
- * @throws DeploymentException XXX
- */
- public abstract WSDDGlobalConfiguration getGlobalConfiguration()
- throws DeploymentException;
-
/**
* retrieve an instance of the named handler
* @param qname XXX
@@ -209,6 +201,15 @@
throws DeploymentException;
/**
+ * deploy the given service
+ * @param key XXX
+ * @param service XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void deployService(String key, SOAPService service)
+ throws DeploymentException;
+
+ /**
* deploy the given handler
* @param item XXX
* @throws DeploymentException XXX
@@ -217,6 +218,15 @@
throws DeploymentException;
/**
+ * Deploy a Handler into the registry.
+ * @param key XXX
+ * @param handler XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void deployHandler(String key, Handler handler)
+ throws DeploymentException;
+
+ /**
* deploy the given transport
* @param item XXX
* @throws DeploymentException XXX
@@ -225,6 +235,15 @@
throws DeploymentException;
/**
+ * deploy the given transport
+ * @param key XXX
+ * @param transport XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void deployTransport(String key, SimpleTargetedChain transport)
+ throws DeploymentException;
+
+ /**
* remove the given item
* @param qname XXX
* @throws DeploymentException XXX
@@ -239,7 +258,15 @@
*/
public abstract void undeployHandler(QName qname)
throws DeploymentException;
-
+
+ /**
+ * Remove the specified handler.
+ * @param key XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void undeployHandler(String key)
+ throws DeploymentException;
+
/**
* remove the given service
* @param qname XXX
@@ -248,6 +275,14 @@
public abstract void undeployService(QName qname)
throws DeploymentException;
+ /**
+ * remove the given service
+ * @param key XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void undeployService(String key)
+ throws DeploymentException;
+
/**
* remove the given transport
* @param qname XXX
@@ -257,6 +292,14 @@
throws DeploymentException;
/**
+ * remove the given transport
+ * @param key XXX
+ * @throws DeploymentException XXX
+ */
+ public abstract void undeployTransport(String key)
+ throws DeploymentException;
+
+ /**
* set the global configuration for the axis engine
* @param global XXX
*/
@@ -383,4 +426,20 @@
*/
public abstract Enumeration getTransports() throws DeploymentException ;
+ /**
+ * Returns a global request handler.
+ */
+ public abstract Handler getGlobalRequest()
+ throws DeploymentException;
+
+ /**
+ * Returns a global response handler.
+ */
+ public abstract Handler getGlobalResponse()
+ throws DeploymentException;
+
+ /**
+ * Returns the global configuration options.
+ */
+ public abstract Hashtable getGlobalOptions();
}
1.17 +2 -1 xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java
Index: V2DDDeployableItem.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- V2DDDeployableItem.java 3 Jan 2002 18:08:28 -0000 1.16
+++ V2DDDeployableItem.java 28 Jan 2002 18:23:00 -0000 1.17
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.v2dd;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeployableItem;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.DeploymentException;
@@ -91,7 +92,7 @@
return qname;
}
- public Handler getInstance(DeploymentRegistry registry) {
+ public Handler getInstance(EngineConfiguration registry) {
// we would create an instance of the SOAP v2.x
// compatible handler here using the service
1.5 +0 -1 xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDException.java
Index: V2DDException.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDException.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- V2DDException.java 30 Oct 2001 14:19:28 -0000 1.4
+++ V2DDException.java 28 Jan 2002 18:23:00 -0000 1.5
@@ -57,7 +57,6 @@
import org.apache.axis.deployment.DeploymentException;
public class V2DDException extends DeploymentException {
- public V2DDException() { super(); }
public V2DDException(String msg) { super(msg); }
public V2DDException(Exception e) {
super(e.getMessage());
1.4 +13 -0 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDBeanMapping.java
Index: WSDDBeanMapping.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDBeanMapping.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSDDBeanMapping.java 26 Jan 2002 02:50:52 -0000 1.3
+++ WSDDBeanMapping.java 28 Jan 2002 18:23:00 -0000 1.4
@@ -103,6 +103,19 @@
return WSDDConstants.BEANMAPPING_QNAME;
}
+ public void writeToContext(SerializationContext context) throws IOException {
+ AttributesImpl attrs = new AttributesImpl();
+
+ String typeStr = context.qName2String(typeQName);
+ attrs.addAttribute("", "languageSpecificType",
+ "languageSpecificType", "CDATA", typeStr);
+
+ String qnameStr = context.qName2String(qname);
+ attrs.addAttribute("", "qname", "qname", "CDATA", qnameStr);
+
+ context.startElement(WSDDConstants.BEANMAPPING_QNAME, attrs);
+ context.endElement();
+ }
}
1.21 +6 -4 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDChain.java
Index: WSDDChain.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDChain.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- WSDDChain.java 6 Dec 2001 16:55:43 -0000 1.20
+++ WSDDChain.java 28 Jan 2002 18:23:00 -0000 1.21
@@ -56,6 +56,8 @@
import org.apache.axis.Chain;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.ConfigurationException;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.deployment.DeploymentRegistry;
@@ -160,8 +162,8 @@
* @return XXX
* @throws Exception XXX
*/
- public Handler makeNewInstance(DeploymentRegistry registry)
- throws Exception
+ public Handler makeNewInstance(EngineConfiguration registry)
+ throws ConfigurationException
{
Chain c = new org.apache.axis.SimpleChain();
@@ -198,8 +200,8 @@
context.endElement();
}
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException {
+ public void deployToRegistry(WSDDDeployment registry)
+ throws WSDDException {
if (getQName() != null)
registry.deployHandler(this);
1.24 +23 -12 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployableItem.java
Index: WSDDDeployableItem.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployableItem.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- WSDDDeployableItem.java 16 Dec 2001 18:07:43 -0000 1.23
+++ WSDDDeployableItem.java 28 Jan 2002 18:23:00 -0000 1.24
@@ -55,6 +55,8 @@
package org.apache.axis.deployment.wsdd;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.ConfigurationException;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.deployment.DeployableItem;
import org.apache.axis.deployment.DeploymentRegistry;
@@ -127,8 +129,6 @@
qname = new QName("", name);
}
- //!!! default namespace?
-
String typeStr = e.getAttribute("type");
if (typeStr != null && !typeStr.equals("")) {
type = XMLUtils.getQNameFromString(typeStr, e);
@@ -276,7 +276,7 @@
*/
public void removeParameter(String name)
{
- // !!! FILL IN
+ parameters.remove(name);
}
/**
@@ -285,8 +285,8 @@
* @return XXX
* @throws Exception XXX
*/
- public final Handler getInstance(DeploymentRegistry registry)
- throws Exception
+ public final Handler getInstance(EngineConfiguration registry)
+ throws ConfigurationException
{
if (scope == SCOPE_SINGLETON) {
synchronized (this) {
@@ -307,15 +307,26 @@
* @return XXX
* @throws Exception XXX
*/
- protected Handler makeNewInstance(DeploymentRegistry registry)
- throws Exception
+ protected Handler makeNewInstance(EngineConfiguration registry)
+ throws ConfigurationException
{
- Class c = getJavaClass();
+ Class c = null;
Handler h = null;
-
+
+ try {
+ c = getJavaClass();
+ } catch (ClassNotFoundException e) {
+ throw new ConfigurationException(e);
+ }
+
if (c != null) {
- h = (Handler)createInstance(c);
-
+
+ try {
+ h = (Handler)createInstance(c);
+ } catch (Exception e) {
+ throw new ConfigurationException(e);
+ }
+
if (h != null) {
if ( qname != null )
h.setName(qname.getLocalPart());
@@ -335,7 +346,7 @@
* @throws Exception XXX
*/
Object createInstance(Class _class)
- throws Exception
+ throws InstantiationException, IllegalAccessException
{
return _class.newInstance();
}
1.18 +171 -127 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java
Index: WSDDDeployment.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- WSDDDeployment.java 26 Jan 2002 02:50:52 -0000 1.17
+++ WSDDDeployment.java 28 Jan 2002 18:23:00 -0000 1.18
@@ -57,7 +57,7 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import org.apache.axis.Constants;
+import org.apache.axis.*;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.DeploymentException;
import org.apache.axis.encoding.ser.BaseSerializerFactory;
@@ -65,8 +65,10 @@
import org.apache.axis.encoding.*;
import javax.xml.rpc.namespace.QName;
-import java.util.Vector;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.Hashtable;
+import java.util.Vector;
import java.io.IOException;
@@ -74,45 +76,92 @@
* WSDD deployment element
*
* @author James Snell
+ * @author Glen Daniels (gdaniels@apache.org)
*/
public class WSDDDeployment
extends WSDDElement
- implements WSDDTypeMappingContainer
+ implements WSDDTypeMappingContainer, EngineConfiguration
{
- private Vector handlers = new Vector();
- private Vector services = new Vector();
- private Vector transports = new Vector();
+ private HashMap handlers = new HashMap();
+ private HashMap services = new HashMap();
+ private HashMap transports = new HashMap();
private Vector typeMappings = new Vector();
- private WSDDGlobalConfiguration globalConfig = null;
-
- public void addHandler(WSDDHandler handler)
+ private WSDDGlobalConfiguration globalConfig = null;
+
+ /**
+ * Put a WSDDHandler into this deployment, replacing any other
+ * WSDDHandler which might already be present with the same QName.
+ *
+ * @param handler a WSDDHandler to insert in this deployment
+ */
+ public void deployHandler(WSDDHandler handler)
{
- handlers.add(handler);
+ handlers.put(handler.getQName(), handler);
}
-
- public void addTransport(WSDDTransport transport)
+
+ /**
+ * Put a WSDDTransport into this deployment, replacing any other
+ * WSDDTransport which might already be present with the same QName.
+ *
+ * @param transport a WSDDTransport to insert in this deployment
+ */
+ public void deployTransport(WSDDTransport transport)
{
- transports.add(transport);
+ transports.put(transport.getQName(), transport);
}
-
- public void addService(WSDDService service)
+
+ /**
+ * Put a WSDDHandler into this deployment, replacing any other
+ * WSDDHandler which might already be present with the same QName.
+ *
+ * @param handler a WSDDHandler to insert in this deployment
+ */
+ public void deployService(WSDDService service)
+ {
+ services.put(service.getQName(), service);
+ }
+
+ /**
+ * Remove a named handler
+ * @param qname the QName of the handler to remove
+ */
+ public void undeployHandler(QName qname)
{
- services.add(service);
+ handlers.remove(qname);
}
-
- public void addTypeMapping(WSDDTypeMapping typeMapping)
+
+ /**
+ * Remove a named service
+ * @param qname the QName of the service to remove
+ */
+ public void undeployService(QName qname)
+ {
+ services.remove(qname);
+ }
+
+ /**
+ * Remove a named transport
+ * @param qname the QName of the transport to remove
+ */
+ public void undeployTransport(QName qname)
+ {
+ transports.remove(qname);
+ }
+
+ public void deployTypeMapping(WSDDTypeMapping typeMapping)
throws WSDDException
{
typeMappings.add(typeMapping);
+ deployMapping(typeMapping);
}
/**
* Default constructor
- */
+ */
public WSDDDeployment()
{
}
-
+
/**
* Create an element in WSDD that wraps an extant DOM element
* @param e (Element) XXX
@@ -122,43 +171,43 @@
throws WSDDException
{
super(e);
-
+
Element [] elements = getChildElements(e, "handler");
int i;
for (i = 0; i < elements.length; i++) {
WSDDHandler handler = new WSDDHandler(elements[i]);
- addHandler(handler);
+ deployHandler(handler);
}
elements = getChildElements(e, "chain");
for (i = 0; i < elements.length; i++) {
WSDDChain chain = new WSDDChain(elements[i]);
- addHandler(chain);
+ chain.deployToRegistry(this);
}
-
+
elements = getChildElements(e, "transport");
for (i = 0; i < elements.length; i++) {
WSDDTransport transport = new WSDDTransport(elements[i]);
- addTransport(transport);
+ transport.deployToRegistry(this);
}
-
+
elements = getChildElements(e, "service");
for (i = 0; i < elements.length; i++) {
WSDDService service = new WSDDService(elements[i]);
- addService(service);
+ service.deployToRegistry(this);
}
-
+
elements = getChildElements(e, "typeMapping");
for (i = 0; i < elements.length; i++) {
WSDDTypeMapping mapping = new WSDDTypeMapping(elements[i]);
- addTypeMapping(mapping);
+ deployTypeMapping(mapping);
}
elements = getChildElements(e, "beanMapping");
for (i = 0; i < elements.length; i++) {
WSDDBeanMapping mapping = new WSDDBeanMapping(elements[i]);
- addTypeMapping(mapping);
+ deployTypeMapping(mapping);
}
Element el = getChildElement(e, "globalConfiguration");
@@ -171,52 +220,47 @@
return WSDDConstants.DEPLOY_QNAME;
}
- public void deployToRegistry(DeploymentRegistry registry)
+ public void deployToRegistry(WSDDDeployment target)
throws DeploymentException
{
WSDDGlobalConfiguration global = getGlobalConfiguration();
if (global != null) {
- registry.setGlobalConfiguration(global);
+ target.setGlobalConfiguration(global);
}
- WSDDHandler[] handlers = getHandlers();
- WSDDTransport[] transports = getTransports();
- WSDDService[] services = getServices();
- WSDDTypeMapping[] mappings = getTypeMappings();
-
- for (int n = 0; n < handlers.length; n++) {
- handlers[n].deployToRegistry(registry);
+ Iterator i = handlers.values().iterator();
+ while (i.hasNext()) {
+ WSDDHandler handler = (WSDDHandler) i.next();
+ target.deployHandler(handler);
}
- for (int n = 0; n < transports.length; n++) {
- transports[n].deployToRegistry(registry);
+ i = transports.values().iterator();
+ while (i.hasNext()) {
+ WSDDTransport transport = (WSDDTransport) i.next();
+ target.deployTransport(transport);
}
- for (int n = 0; n < services.length; n++) {
- services[n].deployToRegistry(registry);
+ i = services.values().iterator();
+ while (i.hasNext()) {
+ WSDDService service = (WSDDService) i.next();
+ target.deployService(service);
}
- for (int n = 0; n < mappings.length; n++) {
- WSDDTypeMapping mapping = mappings[n];
- deployMappingToRegistry(mapping, registry);
+
+ i = typeMappings.iterator();
+ while (i.hasNext()) {
+ WSDDTypeMapping mapping = (WSDDTypeMapping) i.next();
+ target.deployTypeMapping(mapping);
}
}
- public static void deployMappingToRegistry(WSDDTypeMapping mapping,
- DeploymentRegistry registry)
- throws DeploymentException
+ public void deployMapping(WSDDTypeMapping mapping)
+ throws WSDDException
{
try {
- //System.out.println(mapping.getQName() + " " +
- // mapping.getLanguageSpecificType() + " " +
- // mapping.getSerializer() + " " +
- // mapping.getDeserializer() + " " +
- // mapping.getEncodingStyle());
-
- TypeMappingRegistry tmr =
- registry.getTypeMappingRegistry();
-
+ TypeMappingRegistry tmr = getTypeMappingRegistry();
+
TypeMapping tm = (TypeMapping) tmr.getTypeMapping(mapping.getEncodingStyle());
TypeMapping df = (TypeMapping) tmr.getDefaultTypeMapping();
if (tm == null || tm == df) {
@@ -228,30 +272,30 @@
tm.setSupportedEncodings(new String[] {namespace});
tmr.register(tm, new String[] {namespace});
}
-
+
SerializerFactory ser = null;
DeserializerFactory deser = null;
-
+
// Try to construct a serializerFactory by introspecting for the
// following:
// public static create(Class javaType, QName xmlType)
// public <constructor>(Class javaType, QName xmlType)
// public <constructor>()
- //
- // The BaseSerializerFactory createFactory() method is a utility
+ //
+ // The BaseSerializerFactory createFactory() method is a utility
// that does this for us.
//System.out.println("start creating sf and df");
if (mapping.getSerializerName() != null &&
!mapping.getSerializerName().equals("")) {
- ser = BaseSerializerFactory.createFactory(mapping.getSerializer(),
+ ser = BaseSerializerFactory.createFactory(mapping.getSerializer(),
mapping.getLanguageSpecificType(),
mapping.getQName());
}
//System.out.println("set ser factory");
-
+
if (mapping.getDeserializerName() != null &&
!mapping.getDeserializerName().equals("")) {
- deser = BaseDeserializerFactory.createFactory(mapping.getDeserializer(),
+ deser = BaseDeserializerFactory.createFactory(mapping.getDeserializer(),
mapping.getLanguageSpecificType(),
mapping.getQName());
}
@@ -260,7 +304,7 @@
//System.out.println("registered");
}
catch (Exception e) {
- throw new DeploymentException(e);
+ throw new WSDDException(e);
}
}
@@ -271,29 +315,29 @@
context.registerPrefixForURI("java", WSDDConstants.WSDD_JAVA);
context.startElement(new QName(WSDDConstants.WSDD_NS, "deployment"),
null);
-
+
if (globalConfig != null) {
globalConfig.writeToContext(context);
}
-
- Iterator i = handlers.iterator();
+
+ Iterator i = handlers.values().iterator();
while (i.hasNext()) {
WSDDHandler handler = (WSDDHandler)i.next();
handler.writeToContext(context);
}
-
- i = services.iterator();
+
+ i = services.values().iterator();
while (i.hasNext()) {
WSDDService service = (WSDDService)i.next();
service.writeToContext(context);
}
-
- i = transports.iterator();
+
+ i = transports.values().iterator();
while (i.hasNext()) {
WSDDTransport transport = (WSDDTransport)i.next();
transport.writeToContext(context);
}
-
+
i = typeMappings.iterator();
while (i.hasNext()) {
WSDDTypeMapping mapping = (WSDDTypeMapping)i.next();
@@ -301,10 +345,10 @@
}
context.endElement();
}
-
+
/**
* Get our global configuration
- *
+ *
* @return XXX
*/
public WSDDGlobalConfiguration getGlobalConfiguration()
@@ -312,6 +356,10 @@
return globalConfig;
}
+ public void setGlobalConfiguration(WSDDGlobalConfiguration globalConfig) {
+ this.globalConfig = globalConfig;
+ }
+
/**
*
* @return XXX
@@ -325,13 +373,17 @@
/**
*
+ * @param name XXX
* @return XXX
*/
- public WSDDHandler[] getHandlers()
+ public Handler getHandler(QName name) throws ConfigurationException
{
- WSDDHandler[] h = new WSDDHandler[handlers.size()];
- handlers.toArray(h);
- return h;
+ WSDDHandler h = (WSDDHandler)handlers.get(name);
+ if (h != null) {
+ return h.getInstance(this);
+ }
+
+ return null;
}
/**
@@ -339,15 +391,11 @@
* @param name XXX
* @return XXX
*/
- public WSDDHandler getHandler(QName name)
+ public Handler getTransport(QName name) throws ConfigurationException
{
-
- WSDDHandler[] h = getHandlers();
-
- for (int n = 0; n < h.length; n++) {
- if (h[n].getQName().equals(name)) {
- return h[n];
- }
+ WSDDTransport t = (WSDDTransport)transports.get(name);
+ if (t != null) {
+ return t.getInstance(this);
}
return null;
@@ -355,61 +403,57 @@
/**
*
+ * @param name XXX
* @return XXX
*/
- public WSDDTransport[] getTransports()
+ public Handler getService(QName name) throws ConfigurationException
{
- WSDDTransport[] t = new WSDDTransport[transports.size()];
- transports.toArray(t);
- return t;
+ WSDDService s = (WSDDService)services.get(name);
+ if (s != null) {
+ return s.getInstance(this);
+ }
+
+ return null;
}
- /**
- *
- * @param name XXX
- * @return XXX
- */
- public WSDDTransport getTransport(QName name)
- {
+ public void configureEngine(AxisEngine engine)
+ throws ConfigurationException {
- WSDDTransport[] t = getTransports();
+ }
- for (int n = 0; n < t.length; n++) {
- if (t[n].getQName().equals(name)) {
- return t[n];
- }
- }
+ public void writeEngineConfig(AxisEngine engine) throws ConfigurationException {
+ }
- return null;
+ TypeMappingRegistry tmr = new TypeMappingRegistryImpl();
+ public TypeMapping getTypeMapping(String encodingStyle) throws ConfigurationException {
+ return (TypeMapping)tmr.getTypeMapping(encodingStyle);
}
- /**
- *
- * @return XXX
- */
- public WSDDService[] getServices()
- {
- WSDDService[] s = new WSDDService[services.size()];
- services.toArray(s);
- return s;
+ public TypeMappingRegistry getTypeMappingRegistry() throws ConfigurationException {
+ return tmr;
}
- /**
- *
- * @param name XXX
- * @return XXX
- */
- public WSDDService getService(QName name)
- {
+ public Handler getGlobalRequest() throws ConfigurationException {
+ if (globalConfig != null) {
+ WSDDRequestFlow reqFlow = globalConfig.getRequestFlow();
+ if (reqFlow != null)
+ return reqFlow.getInstance(this);
+ }
- WSDDService[] s = getServices();
+ return null;
+ }
- for (int n = 0; n < s.length; n++) {
- if (s[n].getQName().equals(name)) {
- return s[n];
- }
+ public Handler getGlobalResponse() throws ConfigurationException {
+ if (globalConfig != null) {
+ WSDDResponseFlow respFlow = globalConfig.getResponseFlow();
+ if (respFlow != null)
+ return respFlow.getInstance(this);
}
return null;
+ }
+
+ public Hashtable getGlobalOptions() throws ConfigurationException {
+ return globalConfig.getParametersTable();
}
}
1.16 +4 -38 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDocument.java
Index: WSDDDocument.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDocument.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- WSDDDocument.java 26 Jan 2002 02:50:52 -0000 1.15
+++ WSDDDocument.java 28 Jan 2002 18:23:00 -0000 1.16
@@ -74,7 +74,6 @@
* represents a WSDD Document (this is the top level object in this object model)
*/
public class WSDDDocument
- implements DeploymentDocument
{
private Document doc;
@@ -162,48 +161,15 @@
deployment = null;
}
- /**
- *
- */
- public void deploy(DeploymentRegistry registry)
- throws DeploymentException
- {
+ public void deploy(WSDDDeployment registry) throws DeploymentException {
if (deployment != null) {
deployment.deployToRegistry(registry);
- } else {
+ }
+ if (undeployment != null) {
undeployment.undeployFromRegistry(registry);
}
}
- /**
- * Undeploy the contents of this document from the given registry.
- */
- public void undeploy(DeploymentRegistry registry)
- throws DeploymentException {
-
- if (deployment == null)
- throw new DeploymentException();
-
- WSDDHandler[] handlers = deployment.getHandlers();
- WSDDTransport[] transports = deployment.getTransports();
- WSDDService[] services = deployment.getServices();
- WSDDTypeMapping[] mappings = deployment.getTypeMappings();
- QName qname = null;
-
- for (int n = 0; n < handlers.length; n++) {
- qname = handlers[n].getQName();
- if (qname != null)
- registry.undeployHandler(qname);
- }
- for (int n = 0; n < transports.length; n++) {
- qname = transports[n].getQName();
- if (qname != null)
- registry.undeployTransport(qname);
- }
- for (int n = 0; n < services.length; n++) {
- qname = services[n].getQName();
- if (qname != null)
- registry.undeployService(qname);
- }
+ public void undeploy(DeploymentRegistry registry) throws DeploymentException {
}
}
1.7 +0 -9 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDException.java
Index: WSDDException.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDException.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WSDDException.java 30 Oct 2001 16:46:36 -0000 1.6
+++ WSDDException.java 28 Jan 2002 18:23:00 -0000 1.7
@@ -63,15 +63,6 @@
public class WSDDException
extends DeploymentException
{
-
- /**
- *
- */
- public WSDDException()
- {
- super();
- }
-
/**
*
* @param msg (String) XXX
1.20 +3 -2 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.java
Index: WSDDGlobalConfiguration.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- WSDDGlobalConfiguration.java 14 Nov 2001 18:03:13 -0000 1.19
+++ WSDDGlobalConfiguration.java 28 Jan 2002 18:23:00 -0000 1.20
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.deployment.DeploymentRegistry;
@@ -192,7 +193,7 @@
* @param registry XXX
* @return XXX
*/
- public Handler makeNewInstance(DeploymentRegistry registry)
+ public Handler makeNewInstance(EngineConfiguration registry)
{
return null;
}
@@ -211,7 +212,7 @@
context.endElement();
}
- public void deployToRegistry(DeploymentRegistry registry)
+ public void deployToRegistry(WSDDDeployment registry)
throws DeploymentException {
if (requestFlow != null)
requestFlow.deployToRegistry(registry);
1.15 +6 -6 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDHandler.java
Index: WSDDHandler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDHandler.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- WSDDHandler.java 5 Dec 2001 18:33:26 -0000 1.14
+++ WSDDHandler.java 28 Jan 2002 18:23:00 -0000 1.15
@@ -77,11 +77,11 @@
{
/**
* Default constructor
- */
+ */
public WSDDHandler()
{
}
-
+
/**
*
* @param e (Element) XXX
@@ -110,7 +110,7 @@
attrs.addAttribute("", "name", "name",
"CDATA", context.qName2String(name));
}
-
+
attrs.addAttribute("", "type", "type",
"CDATA", context.qName2String(getType()));
context.startElement(new QName(WSDDConstants.WSDD_NS, "handler"),
@@ -119,8 +119,8 @@
context.endElement();
}
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException {
- registry.deployHandler(this);
+ public void deployToRegistry(WSDDDeployment deployment)
+ throws WSDDException {
+ deployment.deployHandler(this);
}
}
1.16 +3 -2 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDProvider.java
Index: WSDDProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDProvider.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- WSDDProvider.java 12 Dec 2001 18:57:11 -0000 1.15
+++ WSDDProvider.java 28 Jan 2002 18:23:00 -0000 1.16
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.providers.WSDDBsfProvider;
@@ -136,7 +137,7 @@
*/
public static Handler getInstance(QName providerType,
WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
if (providerType == null)
@@ -158,6 +159,6 @@
* @throws Exception XXX
*/
public abstract Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception;
}
1.32 +15 -16 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
Index: WSDDService.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- WSDDService.java 26 Jan 2002 02:50:52 -0000 1.31
+++ WSDDService.java 28 Jan 2002 18:23:01 -0000 1.32
@@ -54,16 +54,13 @@
*/
package org.apache.axis.deployment.wsdd;
-import org.apache.axis.Handler;
-import org.apache.axis.TargetedChain;
-import org.apache.axis.FaultableHandler;
import org.apache.axis.utils.XMLUtils;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.handlers.soap.SOAPService;
import org.apache.axis.encoding.ser.BaseSerializerFactory;
import org.apache.axis.encoding.ser.BaseDeserializerFactory;
import org.apache.axis.encoding.*;
-import org.apache.axis.Constants;
+import org.apache.axis.*;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.DeploymentException;
import org.w3c.dom.Document;
@@ -118,13 +115,13 @@
Element [] typeMappings = getChildElements(e, "typeMapping");
for (int i = 0; i < typeMappings.length; i++) {
WSDDTypeMapping typeMapping = new WSDDTypeMapping(typeMappings[i]);
- addTypeMapping(typeMapping);
+ deployTypeMapping(typeMapping);
}
Element [] beanMappings = getChildElements(e, "beanMapping");
for (int i = 0; i < beanMappings.length; i++) {
WSDDBeanMapping beanMapping = new WSDDBeanMapping(beanMappings[i]);
- addTypeMapping(beanMapping);
+ deployTypeMapping(beanMapping);
}
String typeStr = e.getAttribute("provider");
@@ -201,8 +198,8 @@
* @return XXX
* @throws Exception XXX
*/
- public Handler makeNewInstance(DeploymentRegistry registry)
- throws Exception
+ public Handler makeNewInstance(EngineConfiguration registry)
+ throws ConfigurationException
{
if (cachedService != null) {
return cachedService;
@@ -218,9 +215,13 @@
Handler providerHandler = null;
if (providerQName != null) {
- providerHandler = WSDDProvider.getInstance(providerQName,
- this,
- registry);
+ try {
+ providerHandler = WSDDProvider.getInstance(providerQName,
+ this,
+ registry);
+ } catch (Exception e) {
+ throw new ConfigurationException(e);
+ }
if (providerHandler == null)
throw new WSDDException(
JavaUtils.getMessage("couldntConstructProvider00"));
@@ -240,7 +241,6 @@
service.setName(getQName().getLocalPart());
service.setOptions(getParametersTable());
- registry.getTypeMappingRegistry();
service.setTypeMappingRegistry(tmr);
WSDDFaultFlow [] faultFlows = getFaultFlows();
@@ -258,14 +258,13 @@
return service;
}
- public void addTypeMapping(WSDDTypeMapping mapping)
+ public void deployTypeMapping(WSDDTypeMapping mapping)
throws WSDDException
{
if (tmr == null) {
tmr = new TypeMappingRegistryImpl();
}
try {
-
TypeMapping tm = (TypeMapping) tmr.getTypeMapping(mapping.getEncodingStyle());
TypeMapping df = (TypeMapping) tmr.getDefaultTypeMapping();
if (tm == null || tm == df) {
@@ -344,8 +343,8 @@
cachedService = service;
}
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException {
+ public void deployToRegistry(WSDDDeployment registry)
+ throws WSDDException {
registry.deployService(this);
super.deployToRegistry(registry);
1.5 +15 -5 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java
Index: WSDDTargetedChain.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTargetedChain.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WSDDTargetedChain.java 3 Jan 2002 18:08:28 -0000 1.4
+++ WSDDTargetedChain.java 28 Jan 2002 18:23:01 -0000 1.5
@@ -56,6 +56,8 @@
import org.apache.axis.Handler;
import org.apache.axis.TargetedChain;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.ConfigurationException;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.utils.XMLUtils;
import org.apache.axis.transport.http.HTTPSender;
@@ -182,8 +184,8 @@
* @return XXX
* @throws Exception XXX
*/
- public Handler makeNewInstance(DeploymentRegistry registry)
- throws Exception
+ public Handler makeNewInstance(EngineConfiguration registry)
+ throws ConfigurationException
{
Handler reqHandler = null;
@@ -194,7 +196,15 @@
Handler pivot = null;
if (pivotQName != null) {
if (WSDDConstants.WSDD_JAVA.equals(pivotQName.getNamespaceURI())) {
- pivot = (Handler)Class.forName(pivotQName.getLocalPart()).newInstance();
+ try {
+ pivot = (Handler)Class.forName(pivotQName.getLocalPart()).newInstance();
+ } catch (InstantiationException e) {
+ throw new ConfigurationException(e);
+ } catch (IllegalAccessException e) {
+ throw new ConfigurationException(e);
+ } catch (ClassNotFoundException e) {
+ throw new ConfigurationException(e);
+ }
} else {
pivot = registry.getHandler(pivotQName);
}
@@ -223,8 +233,8 @@
}
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException
+ public void deployToRegistry(WSDDDeployment registry)
+ throws WSDDException
{
// deploy any named subparts
if (requestFlow != null) {
1.18 +2 -2 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTransport.java
Index: WSDDTransport.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTransport.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- WSDDTransport.java 14 Nov 2001 17:26:18 -0000 1.17
+++ WSDDTransport.java 28 Jan 2002 18:23:01 -0000 1.18
@@ -121,8 +121,8 @@
context.endElement();
}
- public void deployToRegistry(DeploymentRegistry registry)
- throws DeploymentException {
+ public void deployToRegistry(WSDDDeployment registry)
+ throws WSDDException {
registry.deployTransport(this);
super.deployToRegistry(registry);
1.3 +1 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.java
Index: WSDDTypeMappingContainer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WSDDTypeMappingContainer.java 7 Nov 2001 21:04:20 -0000 1.2
+++ WSDDTypeMappingContainer.java 28 Jan 2002 18:23:01 -0000 1.3
@@ -62,6 +62,6 @@
* @author Glen Daniels (gdaniels@macromedia.com)
*/
public interface WSDDTypeMappingContainer {
- public void addTypeMapping(WSDDTypeMapping mapping)
+ public void deployTypeMapping(WSDDTypeMapping mapping)
throws WSDDException;
}
1.3 +2 -2 xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDUndeployment.java
Index: WSDDUndeployment.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDUndeployment.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WSDDUndeployment.java 26 Jan 2002 02:50:52 -0000 1.2
+++ WSDDUndeployment.java 28 Jan 2002 18:23:01 -0000 1.3
@@ -106,7 +106,7 @@
services.add(service);
}
- public void addTypeMapping(WSDDTypeMapping typeMapping)
+ public void deployTypeMapping(WSDDTypeMapping typeMapping)
throws WSDDException
{
typeMappings.add(typeMapping);
@@ -182,7 +182,7 @@
return WSDDConstants.UNDEPLOY_QNAME;
}
- public void undeployFromRegistry(DeploymentRegistry registry)
+ public void undeployFromRegistry(WSDDDeployment registry)
throws DeploymentException
{
QName qname;
1.17 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.java
Index: WSDDBsfProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- WSDDBsfProvider.java 9 Nov 2001 23:13:01 -0000 1.16
+++ WSDDBsfProvider.java 28 Jan 2002 18:23:01 -0000 1.17
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.WSDDConstants;
@@ -80,7 +81,7 @@
extends WSDDProvider
{
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
Handler provider = new org.apache.axis.providers.BSFProvider();
1.17 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDComProvider.java
Index: WSDDComProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDComProvider.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- WSDDComProvider.java 9 Nov 2001 23:13:01 -0000 1.16
+++ WSDDComProvider.java 28 Jan 2002 18:23:01 -0000 1.17
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.WSDDProvider;
import org.apache.axis.deployment.wsdd.WSDDService;
@@ -70,7 +71,7 @@
extends WSDDProvider
{
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
Class _class = Class.forName("org.apache.axis.handlers.providers.ComProvider");
1.4 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.java
Index: WSDDHandlerProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSDDHandlerProvider.java 13 Nov 2001 14:56:05 -0000 1.3
+++ WSDDHandlerProvider.java 28 Jan 2002 18:23:01 -0000 1.4
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.deployment.DeploymentException;
import org.apache.axis.deployment.DeploymentRegistry;
@@ -72,7 +73,7 @@
extends WSDDProvider
{
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
String providerClass = service.getParameter("handlerClass");
1.2 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.java
Index: WSDDJavaEJBProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSDDJavaEJBProvider.java 13 Nov 2001 21:08:32 -0000 1.1
+++ WSDDJavaEJBProvider.java 28 Jan 2002 18:23:01 -0000 1.2
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.WSDDProvider;
import org.apache.axis.deployment.wsdd.WSDDService;
@@ -72,7 +73,7 @@
*
*/
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
return new org.apache.axis.providers.java.EJBProvider();
1.2 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.java
Index: WSDDJavaMsgProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSDDJavaMsgProvider.java 7 Nov 2001 21:04:21 -0000 1.1
+++ WSDDJavaMsgProvider.java 28 Jan 2002 18:23:01 -0000 1.2
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.WSDDProvider;
import org.apache.axis.deployment.wsdd.WSDDService;
@@ -70,7 +71,7 @@
*
*/
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
return new org.apache.axis.providers.java.MsgProvider();
1.2 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.java
Index: WSDDJavaRPCProvider.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSDDJavaRPCProvider.java 7 Nov 2001 21:04:21 -0000 1.1
+++ WSDDJavaRPCProvider.java 28 Jan 2002 18:23:01 -0000 1.2
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsdd.providers;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.wsdd.WSDDProvider;
import org.apache.axis.deployment.wsdd.WSDDService;
@@ -70,7 +71,7 @@
*
*/
public Handler newProviderInstance(WSDDService service,
- DeploymentRegistry registry)
+ EngineConfiguration registry)
throws Exception
{
return new org.apache.axis.providers.java.RPCProvider();
1.9 +2 -1 xml-axis/java/src/org/apache/axis/deployment/wsml/WSMLDeployableItem.java
Index: WSMLDeployableItem.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsml/WSMLDeployableItem.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WSMLDeployableItem.java 14 Nov 2001 17:26:18 -0000 1.8
+++ WSMLDeployableItem.java 28 Jan 2002 18:23:02 -0000 1.9
@@ -55,6 +55,7 @@
package org.apache.axis.deployment.wsml;
import org.apache.axis.Handler;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.deployment.DeployableItem;
import org.apache.axis.deployment.DeploymentRegistry;
import org.apache.axis.deployment.DeploymentException;
@@ -67,7 +68,7 @@
return null;
}
- public Handler getInstance(org.apache.axis.deployment.DeploymentRegistry registry) {
+ public Handler getInstance(EngineConfiguration registry) {
return null;
}
1.2 +2 -1 xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java
Index: DeserializationContextImpl.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DeserializationContextImpl.java 26 Jan 2002 02:40:33 -0000 1.1
+++ DeserializationContextImpl.java 28 Jan 2002 18:23:02 -0000 1.2
@@ -398,7 +398,8 @@
*/
public TypeMapping getTypeMapping()
{
- return (TypeMapping) msgContext.getTypeMappingRegistry().getTypeMapping(Constants.URI_CURRENT_SOAP_ENC);
+ TypeMappingRegistry tmr = msgContext.getTypeMappingRegistry();
+ return (TypeMapping) tmr.getTypeMapping(Constants.URI_CURRENT_SOAP_ENC);
}
/**
1.73 +0 -1 xml-axis/java/src/org/apache/axis/message/MessageElement.java
Index: MessageElement.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- MessageElement.java 26 Jan 2002 02:47:22 -0000 1.72
+++ MessageElement.java 28 Jan 2002 18:23:02 -0000 1.73
@@ -57,7 +57,6 @@
import org.apache.axis.Constants;
import org.apache.axis.MessageContext;
-import org.apache.axis.configuration.NullProvider;
import org.apache.axis.encoding.DeserializationContext;
import org.apache.axis.encoding.Deserializer;
import org.apache.axis.encoding.SerializationContext;
1.55 +3 -3 xml-axis/java/src/org/apache/axis/server/AxisServer.java
Index: AxisServer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/AxisServer.java,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- AxisServer.java 10 Jan 2002 20:01:00 -0000 1.54
+++ AxisServer.java 28 Jan 2002 18:23:02 -0000 1.55
@@ -57,7 +57,7 @@
import org.apache.axis.AxisEngine;
import org.apache.axis.AxisFault;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.Constants;
import org.apache.axis.Handler;
import org.apache.axis.Message;
@@ -116,9 +116,9 @@
this(new FileProvider(Constants.SERVER_CONFIG_FILE));
}
- public AxisServer(ConfigurationProvider provider)
+ public AxisServer(EngineConfiguration config)
{
- super(provider);
+ super(config);
// Server defaults to persisting configuration
shouldSaveConfig = true;
}
1.4 +0 -1 xml-axis/java/src/org/apache/axis/server/AxisServerFactory.java
Index: AxisServerFactory.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/AxisServerFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AxisServerFactory.java 7 Dec 2001 19:51:58 -0000 1.3
+++ AxisServerFactory.java 28 Jan 2002 18:23:02 -0000 1.4
@@ -1,6 +1,5 @@
package org.apache.axis.server;
-import org.apache.axis.ConfigurationProvider;
import org.apache.axis.AxisFault;
import org.apache.axis.Constants;
import org.apache.axis.configuration.FileProvider;
1.3 +14 -14 xml-axis/java/src/org/apache/axis/server/DefaultAxisServerFactory.java
Index: DefaultAxisServerFactory.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/DefaultAxisServerFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultAxisServerFactory.java 7 Dec 2001 19:54:43 -0000 1.2
+++ DefaultAxisServerFactory.java 28 Jan 2002 18:23:02 -0000 1.3
@@ -1,6 +1,6 @@
package org.apache.axis.server;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.AxisFault;
import org.apache.axis.Constants;
import org.apache.axis.configuration.FileProvider;
@@ -16,11 +16,11 @@
*/
public class DefaultAxisServerFactory implements AxisServerFactory {
- private static FileProvider defaultConfigProvider =
+ private static FileProvider defaultEngineConfig =
new FileProvider(Constants.SERVER_CONFIG_FILE);
/**
- * Get an AxisServer. This factory looks for a "provider" in the
+ * Get an AxisServer. This factory looks for an "engineConfig" in the
* environment Map, and if one is found, uses that. Otherwise it
* uses the default initialization.
*
@@ -28,14 +28,14 @@
public AxisServer getServer(Map environment)
throws AxisFault
{
- ConfigurationProvider provider = null;
+ EngineConfiguration config = null;
try {
- provider = (ConfigurationProvider)environment.get("provider");
+ config = (EngineConfiguration)environment.get("engineConfig");
} catch (ClassCastException e) {
// Just in case, fall through here.
}
- return createNewServer(provider);
+ return createNewServer(config);
}
/**
@@ -45,21 +45,21 @@
*
* @return a shiny new AxisServer, ready for use.
*/
- static private AxisServer createNewServer(ConfigurationProvider provider)
+ static private AxisServer createNewServer(EngineConfiguration config)
{
- if (provider == null) {
+ if (config == null) {
// Default configuration steps...
//
// 1. Check for a system property telling us which Configuration
// Provider to use. If we find it, try creating one.
- String configClass = System.getProperty("axis.configProviderClass");
+ String configClass = System.getProperty("axis.engineConfigClass");
if (configClass != null) {
// Got one - so try to make it (which means it had better have
// a default constructor - may make it possible later to pass in
// some kind of environmental parameters...)
try {
Class cls = Class.forName(configClass);
- provider = (ConfigurationProvider)cls.newInstance();
+ config = (EngineConfiguration)cls.newInstance();
} catch (ClassNotFoundException e) {
// Fall through???
} catch (InstantiationException e) {
@@ -72,12 +72,12 @@
// 2. If we couldn't make one above, use the default one.
// !!! May want to add options here for getting another system
// property which is the config file name...
- if (provider == null) {
- provider = defaultConfigProvider;
+ if (config == null) {
+ config = defaultEngineConfig;
}
}
- // 3. Create an AxisServer using the appropriate provider
- return new AxisServer(provider);
+ // 3. Create an AxisServer using the appropriate config
+ return new AxisServer(config);
}
}
1.3 +20 -20 xml-axis/java/src/org/apache/axis/server/JNDIAxisServerFactory.java
Index: JNDIAxisServerFactory.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/JNDIAxisServerFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JNDIAxisServerFactory.java 7 Dec 2001 20:11:34 -0000 1.2
+++ JNDIAxisServerFactory.java 28 Jan 2002 18:23:02 -0000 1.3
@@ -1,6 +1,6 @@
package org.apache.axis.server;
-import org.apache.axis.ConfigurationProvider;
+import org.apache.axis.EngineConfiguration;
import org.apache.axis.AxisFault;
import org.apache.axis.Constants;
import org.apache.axis.configuration.FileProvider;
@@ -20,7 +20,7 @@
*/
public class JNDIAxisServerFactory implements AxisServerFactory {
- private static FileProvider defaultConfigProvider =
+ private static FileProvider defaultEngineConfig =
new FileProvider(Constants.SERVER_CONFIG_FILE);
/**
@@ -32,7 +32,7 @@
* NOTE : REQUIRES SERVLET 2.3 FOR THE GetServletContextName() CALL!
*
* @param name the JNDI name we're interested in
- * @param configProvider a ConfigurationProvider which should be used
+ * @param configProvider a EngineConfiguration which should be used
* to configure any engine we end up creating, or
* null to use the default configuration pattern.
*/
@@ -49,9 +49,9 @@
} catch (NamingException e) {
}
- ConfigurationProvider provider = null;
+ EngineConfiguration config = null;
try {
- provider = (ConfigurationProvider)environment.get("provider");
+ config = (EngineConfiguration)environment.get("engineConfig");
} catch (ClassCastException e) {
// Just in case, fall through here.
}
@@ -81,7 +81,7 @@
server = (AxisServer)context.lookup(name);
} catch (NamingException e) {
// Didn't find it.
- server = createNewServer(provider);
+ server = createNewServer(config);
try {
context.bind(name, server);
} catch (NamingException e1) {
@@ -89,7 +89,7 @@
}
}
} else {
- server = createNewServer(provider);
+ server = createNewServer(config);
}
}
@@ -98,30 +98,30 @@
/**
* Do the actual work of creating a new AxisServer, using the passed
- * configuration provider, or going through the default configuration
+ * engine configuration, or going through the default configuration
* steps if null is passed.
*
* @return a shiny new AxisServer, ready for use.
*/
- static private AxisServer createNewServer(ConfigurationProvider provider)
+ static private AxisServer createNewServer(EngineConfiguration config)
{
- // Just use the passed provider if there is one.
- if (provider != null) {
- return new AxisServer(provider);
+ // Just use the passed config if there is one.
+ if (config != null) {
+ return new AxisServer(config);
}
// Default configuration steps...
//
- // 1. Check for a system property telling us which Configuration
- // Provider to use. If we find it, try creating one.
- String configClass = System.getProperty("axis.configProviderClass");
+ // 1. Check for a system property telling us which Engine
+ // Configuration to use. If we find it, try creating one.
+ String configClass = System.getProperty("axis.engineConfigClass");
if (configClass != null) {
// Got one - so try to make it (which means it had better have
// a default constructor - may make it possible later to pass in
// some kind of environmental parameters...)
try {
Class cls = Class.forName(configClass);
- provider = (ConfigurationProvider)cls.newInstance();
+ config = (EngineConfiguration)cls.newInstance();
} catch (ClassNotFoundException e) {
// Fall through???
} catch (InstantiationException e) {
@@ -134,11 +134,11 @@
// 2. If we couldn't make one above, use the default one.
// !!! May want to add options here for getting another system
// property which is the config file name...
- if (provider == null) {
- provider = defaultConfigProvider;
+ if (config == null) {
+ config = defaultEngineConfig;
}
- // 3. Create an AxisServer using the appropriate provider
- return new AxisServer(provider);
+ // 3. Create an AxisServer using the appropriate config
+ return new AxisServer(config);
}
}
1.9 +5 -0 xml-axis/java/src/org/apache/axis/server/server-config.wsdd
Index: server-config.wsdd
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/server-config.wsdd,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- server-config.wsdd 15 Jan 2002 17:57:03 -0000 1.8
+++ server-config.wsdd 28 Jan 2002 18:23:02 -0000 1.9
@@ -21,6 +21,11 @@
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
</service>
+ <service name="http://xml.apache.org/axis/wsdd/" provider="java:MSG">
+ <parameter name="allowedMethods" value="AdminService"/>
+ <parameter name="enableRemoteAdmin" value="false"/>
+ <parameter name="className" value="org.apache.axis.utils.Admin"/>
+ </service>
<service name="JWSProcessor" provider="Handler">
<parameter name="handlerClass" value="org.apache.axis.handlers.JWSProcessor"/>
</service>
1.94 +76 -192 xml-axis/java/src/org/apache/axis/utils/Admin.java
Index: Admin.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/Admin.java,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- Admin.java 26 Jan 2002 02:50:52 -0000 1.93
+++ Admin.java 28 Jan 2002 18:23:02 -0000 1.94
@@ -55,13 +55,7 @@
package org.apache.axis.utils ;
-import org.apache.axis.AxisEngine;
-import org.apache.axis.AxisFault;
-import org.apache.axis.Chain;
-import org.apache.axis.Constants;
-import org.apache.axis.Handler;
-import org.apache.axis.MessageContext;
-import org.apache.axis.SimpleChain;
+import org.apache.axis.*;
import org.apache.axis.providers.java.RPCProvider;
import org.apache.axis.providers.java.MsgProvider;
import org.apache.axis.deployment.wsdd.*;
@@ -146,26 +140,25 @@
NodeList list = root.getElementsByTagName("beanMappings");
for (int i = 0; list != null && i < list.getLength(); i++) {
Element el = (Element)list.item(i);
- registerTypes(el, service, true, null);
+ registerTypes(el, service, true);
}
list = root.getElementsByTagName("typeMappings");
for (int i = 0; list != null && i < list.getLength(); i++) {
Element el = (Element)list.item(i);
- registerTypes(el, service, false, null);
+ registerTypes(el, service, false);
}
}
private static void registerTypes(Element root,
WSDDTypeMappingContainer container,
- boolean isBean,
- DeploymentRegistry registry)
+ boolean isBean)
throws Exception
{
NodeList list = root.getChildNodes();
for (int i = 0; (list != null) && (i < list.getLength()); i++) {
if (!(list.item(i) instanceof Element)) continue;
- registerTypeMapping((Element)list.item(i), container, isBean, registry);
+ registerTypeMapping((Element)list.item(i), container, isBean);
}
}
@@ -173,7 +166,7 @@
* Process a given XML document - needs cleanup.
*/
public Element[] AdminService(MessageContext msgContext, Vector xml)
- throws AxisFault
+ throws Exception
{
category.debug(JavaUtils.getMessage("enter00", "Admin:AdminService") );
Document doc = process( msgContext, (Element) xml.get(0) );
@@ -183,132 +176,20 @@
return( result );
}
- /** Process an engine configuration file by deploying appropriate stuff
- * into the specified AxisEngine, and then telling it to save itself
- * when we're done.
- *
- * @param doc an XML document containing an Axis engine configuration
- * @param engine the AxisEngine in which to deploy
- * @exception Exception (should be DeploymentException?)
- */
- public static void processEngineConfig(Document doc, AxisEngine engine)
- throws Exception
- {
- Element el = doc.getDocumentElement();
- String namespace = el.getNamespaceURI();
-
- // If this is WSDD, process it correctly.
- if (namespace != null && namespace.equals(WSDDConstants.WSDD_NS)) {
- processWSDD(engine, el);
- return;
- }
-
- if (!el.getTagName().equals("engineConfig"))
- throw new Exception(
- JavaUtils.getMessage("noEngineConfig00", el.getTagName()));
-
- NodeList nl = el.getElementsByTagName("handlers");
- deploy(nl, engine);
-
- nl = el.getElementsByTagName("services");
- deploy(nl, engine);
-
- nl = el.getElementsByTagName("transports");
- deploy(nl, engine);
-
- nl = el.getElementsByTagName("typeMappings");
- deploy(nl, engine);
-
- //engine.saveConfiguration();
- }
-
- private static final int
- TYPE_UNKNOWN = 0,
- TYPE_HANDLER = 1,
- TYPE_CHAIN = 2,
- TYPE_SERVICE = 3,
- TYPE_TRANSPORT = 4,
- TYPE_TYPEMAPPING = 5;
- private static final Hashtable typeTable = new Hashtable();
- static {
- typeTable.put("handler", new Integer(TYPE_HANDLER));
- typeTable.put("chain", new Integer(TYPE_CHAIN));
- typeTable.put("service", new Integer(TYPE_SERVICE));
- typeTable.put("transport", new Integer(TYPE_TRANSPORT));
- typeTable.put("typeMapping", new Integer(TYPE_TYPEMAPPING));
- }
- private static int getType(String tagName) {
- Integer i;
- if ((i = (Integer)typeTable.get(tagName)) == null)
- return TYPE_UNKNOWN;
- return i.intValue();
- }
-
- /** Deploy a set of individual items.
- *
- * NOTE: as it stands this doesn't care about the relationship between
- * these items and the enclosing tag. We shouldn't really allow <service>
- * deployment underneath the <transports> tag, for instance. Since this
- * is going to mutate some more, this is the simple way to do it for now.
- *
- * @param nl a DOM NodeList of deployable items.
- * @param engine the AxisEngine into which we deploy.
- * @exception Exception (should be DeploymentException?)
- */
- static void deploy(NodeList nl, AxisEngine engine) throws Exception
- {
- WSDDDocument wd = (WSDDDocument)engine.getDeploymentRegistry().getConfigDocument();
- WSDDDeployment dep = wd.getDeployment();
-
- int lenI = nl.getLength();
- for (int i = 0; i < lenI; i++) {
- Element el = (Element)nl.item(i);
-
- NodeList children = el.getChildNodes();
- int lenJ = children.getLength();
- for (int j = 0; j < lenJ; j++) {
- if (!(children.item(j) instanceof Element)) continue;
-
- Element item = (Element)children.item(j);
-
- int type;
- switch (type = getType(item.getTagName())) {
- case TYPE_HANDLER:
- registerHandler(item, engine);
- break;
- case TYPE_CHAIN:
- registerChain(item, engine);
- break;
- case TYPE_SERVICE:
- registerService(item, engine);
- break;
- case TYPE_TRANSPORT:
- registerTransport(item, engine);
- break;
- case TYPE_TYPEMAPPING:
- registerTypeMapping(item, dep, false, null);
- break;
- case TYPE_UNKNOWN:
- // ignore it
- break;
- default:
- throw new UnknownError(JavaUtils.getMessage(
- "never00",
- "org.apache.axis.utils.Admin",
- "type = " + type));
- }
- }
- }
- }
-
protected static Document processWSDD(AxisEngine engine, Element root)
- throws AxisFault
+ throws Exception
{
Document doc = null ;
WSDDDocument wsddDoc = new WSDDDocument(root);
- engine.deployWSDD(wsddDoc);
-
+ EngineConfiguration config = engine.getConfig();
+ if (config instanceof FileProvider) {
+ FileProvider wsddProvider = (FileProvider)config;
+ WSDDDeployment deployment = wsddProvider.getDeployment();
+ wsddDoc.getDeployment().deployToRegistry(deployment);
+ }
+ engine.refreshGlobalOptions();
+
engine.saveConfiguration();
doc = XMLUtils.newDocument();
@@ -327,7 +208,7 @@
* @return an XML Document indicating the results.
*/
public Document process(MessageContext msgContext, Element root)
- throws AxisFault
+ throws Exception
{
// Check security FIRST.
@@ -433,8 +314,14 @@
engine = engine.getClientEngine();
}
- WSDDDocument wd = (WSDDDocument)engine.getDeploymentRegistry().getConfigDocument();
- WSDDDeployment dep = wd.getDeployment();
+ WSDDDeployment dep = null;
+ try {
+ FileProvider config = (FileProvider)engine.getConfig();
+ dep = config.getDeployment();
+ } catch (Exception e) {
+ // This will catch NPEs and ClassCastExceptions, either of
+ // which means the engine isn't configurable.
+ }
NodeList list = root.getChildNodes();
for ( int loop = 0 ; loop < list.getLength() ; loop++ ) {
@@ -449,11 +336,11 @@
if ( action.equals( "undeploy" ) ) {
if ( type.equals("service") ) {
category.info( JavaUtils.getMessage("undeploy00", type + ": " + name) );
- engine.undeployService( name );
+ dep.undeployService( new QName(null,name) );
}
else if ( type.equals("handler") || type.equals("chain") ) {
category.info( JavaUtils.getMessage("undeploy00", type + ": " + name) );
- engine.undeployHandler( name );
+ dep.undeployHandler( new QName(null,name) );
}
else
throw new AxisFault( "Admin.error",
@@ -463,25 +350,25 @@
}
if ( type.equals( "handler" ) ) {
- registerHandler(elem, engine);
+ registerHandler(elem, dep);
}
else if ( type.equals( "chain" ) ) {
- registerChain(elem, engine);
+ registerChain(elem, dep);
}
else if ( type.equals( "service" ) ) {
- registerService(elem, engine);
+ registerService(elem, dep, engine instanceof AxisServer);
}
else if (type.equals("transport")) {
- registerTransport(elem, engine);
+ registerTransport(elem, dep);
}
// A streamlined means of deploying both a serializer and a deserializer
// for a bean at the same time.
else if ( type.equals( "beanMappings" ) ) {
- registerTypes(elem, dep, true, engine.getDeploymentRegistry());
+ registerTypes(elem, dep, true);
}
else if (type.equals("typeMappings")) {
- registerTypes(elem, dep, false, engine.getDeploymentRegistry());
+ registerTypes(elem, dep, false);
} else
throw new AxisFault( "Admin.error",
JavaUtils.getMessage("unknownType01", action + ": " + type),
@@ -517,10 +404,16 @@
SerializationContext context = new SerializationContextImpl(writer, null);
context.setPretty(true);
try {
- engine.getDeploymentRegistry().writeToContext(context);
+ FileProvider config = (FileProvider)engine.getConfig();
+ WSDDDeployment deployment = config.getDeployment();
+ deployment.writeToContext(context);
} catch (Exception e) {
- e.printStackTrace();
+ // If the engine config isn't a FileProvider, or we have no
+ // engine config for some odd reason, we'll end up here.
+
+ throw new AxisFault(JavaUtils.getMessage("noEngineWSDD"));
}
+
try {
writer.close();
return XMLUtils.newDocument(new InputSource(new StringReader(writer.getBuffer().toString())));
@@ -535,8 +428,9 @@
* @param elem the <chain> element
* @param engine the AxisEngine in which to deploy
*/
- public static void registerChain(Element elem, AxisEngine engine)
- throws AxisFault
+ public static void registerChain(Element elem,
+ WSDDDeployment deployment)
+ throws Exception
{
Handler tmpH = null;
String hName;
@@ -560,9 +454,6 @@
getOptions( elem, options );
- WSDDDocument wsddDoc = (WSDDDocument)engine.
- getDeploymentRegistry().getConfigDocument();
-
WSDDChain chain = new WSDDChain();
chain.setName(name);
chain.setOptionsHashtable(options);
@@ -576,7 +467,7 @@
chain.addHandler(handler);
}
- engine.getDeploymentRegistry().deployHandler(chain);
+ deployment.deployHandler(chain);
}
}
@@ -586,8 +477,10 @@
* @param elem the <service> element
* @param engine the AxisEngine in which to deploy
*/
- public static void registerService(Element elem, AxisEngine engine)
- throws AxisFault
+ public static void registerService(Element elem,
+ WSDDDeployment deployment,
+ boolean isServer)
+ throws Exception
{
String name = elem.getAttribute( "name" );
String request = elem.getAttribute( "request" );
@@ -632,8 +525,8 @@
/**
* Pivots only make sense on the server.
*/
- if (engine instanceof AxisServer) {
- Handler pivotHandler = engine.getHandler(pivot);
+ if (isServer) {
+ Handler pivotHandler = deployment.getHandler(new QName("", pivot));
if (pivotHandler == null)
throw new AxisFault(JavaUtils.getMessage("noPivot00", pivot));
Class pivotClass = pivotHandler.getClass();
@@ -665,50 +558,45 @@
throw AxisFault.makeFault(e);
}
- engine.getDeploymentRegistry().deployService(serv);
+ deployment.deployService(serv);
}
/**
* Deploy a handler described in XML into an AxisEngine.
*
* @param elem the <handler> element
- * @param engine the AxisEngine in which to deploy
*/
- public static void registerHandler(Element elem, AxisEngine engine)
- throws AxisFault
+ public static void registerHandler(Element elem,
+ WSDDDeployment deployment)
+ throws Exception
{
- try {
- AxisClassLoader cl = AxisClassLoader.getClassLoader();
- String name = elem.getAttribute( "name" );
- Handler h = null;
+ AxisClassLoader cl = AxisClassLoader.getClassLoader();
+ String name = elem.getAttribute( "name" );
- if ( name != null && name.equals("") ) name = null ;
+ WSDDHandler handler;
- String cls = elem.getAttribute( "class" );
- if ( cls != null && cls.equals("") ) cls = null ;
- category.info( JavaUtils.getMessage("deployHandler00", name) );
-
- h = engine.getHandler( name );
- if ( h == null ) h = (Handler) cl.loadClass(cls).newInstance();
- getOptions( elem, h );
- engine.deployHandler( name, h );
- } catch (ClassNotFoundException e) {
- throw AxisFault.makeFault(e);
- } catch (InstantiationException e) {
- throw AxisFault.makeFault(e);
- } catch (IllegalAccessException e) {
- throw AxisFault.makeFault(e);
- }
+ if ( name != null && name.equals("") ) name = null ;
+
+ String cls = elem.getAttribute( "class" );
+ if ( cls != null && cls.equals("") ) cls = null ;
+ category.info( JavaUtils.getMessage("deployHandler00", name) );
+
+ handler = new WSDDHandler();
+
+ handler.setQName(new QName(null, name));
+ getOptions( elem, handler.getParametersTable() );
+
+ deployment.deployHandler(handler);
}
/**
* Deploy a transport described in XML into an AxisEngine.
*
* @param elem the <transport> element
- * @param engine the AxisEngine in which to deploy
*/
- public static void registerTransport(Element elem, AxisEngine engine)
- throws AxisFault
+ public static void registerTransport(Element elem,
+ WSDDDeployment deployment)
+ throws Exception
{
String name = elem.getAttribute( "name" );
String request = elem.getAttribute( "request" );
@@ -726,7 +614,6 @@
Vector reqNames = new Vector();
Vector respNames = new Vector();
- WSDDDocument wd = (WSDDDocument)engine.getDeploymentRegistry().getConfigDocument();
WSDDTransport transport = new WSDDTransport();
transport.setName(name);
@@ -756,7 +643,7 @@
getOptions( elem, options );
transport.setOptionsHashtable(options);
- engine.getDeploymentRegistry().deployTransport(transport);
+ deployment.deployTransport(transport);
}
/**
@@ -767,8 +654,7 @@
*/
private static void registerTypeMapping(Element elem,
WSDDTypeMappingContainer container,
- boolean isBean,
- DeploymentRegistry registry)
+ boolean isBean)
throws Exception
{
WSDDTypeMapping mapping = new WSDDTypeMapping();
@@ -838,10 +724,8 @@
null, null);
}
}
-
- if (registry != null) {
- WSDDDeployment.deployMappingToRegistry(mapping, registry);
- }
+
+ container.deployTypeMapping(mapping);
}
public static void main(String args[]) throws Exception {
1.44 +4 -2 xml-axis/java/src/org/apache/axis/utils/resources.properties
Index: resources.properties
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/resources.properties,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- resources.properties 24 Jan 2002 23:13:00 -0000 1.43
+++ resources.properties 28 Jan 2002 18:23:02 -0000 1.44
@@ -290,6 +290,8 @@
# NOTE: in noEngineConfig00, do not translate "engineConfig"
noEngineConfig00=Wanted ''engineConfig'' element, got ''{0}''
+noEngineWSDD=Engine configuration is not present or not WSDD!
+
noHandler00=Cannot locate handler: {0}
# NOTE: in noHandler01, do not translate "QName"
@@ -593,7 +595,7 @@
deserPutValueDebug00=Put of deserialized value= {0} for id= {1}
j2wemitter00=emitter
j2wusage00=Usage: {0}
-j2woptions00=Options:
+j2woptions00=Options:
j2wdetails00=Details:\n portType name= <class-of-portType name>\n binding name= <--service value>SoapBinding\n service name= <--service value>Service\n port name= <--service value>\n address location= <--location value>
j2wopthelp00=print this message and exit
j2woptoutput00=output Wsdl filename
@@ -610,7 +612,7 @@
j2woptfactory00=name of the Java2WSDLFactory class for extending WSDL generation functions
j2woptimplClass00=optional class that contains implementation of methods in class-of-portType. The debug information in the class is used to obtain the method parameter names, which are used to set the WSDL part names.
j2werror00=Error: {0}
-j2wmodeerror=Error Unrecognized Mode: {0} Use All, Interface or Implementation. Continuing with All.
+j2wmodeerror=Error Unrecognized Mode: {0} Use All, Interface or Implementation. Continuing with All.
optionSkeletonDeploy00=(true or false) Indicate whether to deploy skeleton or implementation class.
j2wMissingLocation00=The -l <location> option must be specified if the full wsdl or the implementation wsdl is requested.
1.32 +17 -20 xml-axis/java/test/RPCDispatch/TestRPC.java
Index: TestRPC.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/RPCDispatch/TestRPC.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- TestRPC.java 15 Jan 2002 17:57:03 -0000 1.31
+++ TestRPC.java 28 Jan 2002 18:23:02 -0000 1.32
@@ -6,6 +6,8 @@
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
+import org.apache.axis.providers.java.RPCProvider;
+import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.handlers.soap.SOAPService;
import org.apache.axis.message.RPCElement;
import org.apache.axis.message.RPCParam;
@@ -17,6 +19,7 @@
import org.w3c.dom.Element;
import org.w3c.dom.Text;
+import javax.xml.rpc.namespace.QName;
import java.util.Vector;
/**
@@ -39,20 +42,14 @@
"</soap:Body>\n" +
"</soap:Envelope>\n";
- private AxisServer engine = new AxisServer();
- private Handler RPCDispatcher;
+ private SimpleProvider provider = new SimpleProvider();
+ private AxisServer engine = new AxisServer(provider);
private String SOAPAction = "urn:reverse";
public TestRPC(String name) {
super(name);
engine.init();
- try {
- RPCDispatcher = engine.getHandler("RPCDispatcher");
- } catch (AxisFault fault) {
- // ???
- }
- // Debug.setDebugLevel(5);
}
/**
@@ -109,10 +106,10 @@
*/
public void testReverseString() throws Exception {
// Register the reverseString service
- SOAPService reverse = new SOAPService(RPCDispatcher);
+ SOAPService reverse = new SOAPService(new RPCProvider());
reverse.setOption("className", "test.RPCDispatch.Service");
reverse.setOption("allowedMethods", "reverseString");
- engine.deployService(SOAPAction, reverse);
+ provider.deployService(new QName(null,SOAPAction), reverse);
// invoke the service and verify the result
assertEquals("Did not reverse the string correctly.", "cba", rpc("reverseString", new Object[] {"abc"}));
@@ -123,10 +120,10 @@
*/
public void testReverseData() throws Exception {
// Register the reverseData service
- SOAPService reverse = new SOAPService(RPCDispatcher);
+ SOAPService reverse = new SOAPService(new RPCProvider());
reverse.setOption("className", "test.RPCDispatch.Service");
reverse.setOption("allowedMethods", "reverseData");
- engine.deployService(SOAPAction, reverse);
+ provider.deployService(new QName(null, SOAPAction), reverse);
// invoke the service and verify the result
Data input = new Data(5, "abc", 3);
@@ -139,10 +136,10 @@
*/
public void testMessageContextImplicit() throws Exception {
// Register the targetService service
- SOAPService tgtSvc = new SOAPService(RPCDispatcher);
+ SOAPService tgtSvc = new SOAPService(new RPCProvider());
tgtSvc.setOption("className", "test.RPCDispatch.Service");
tgtSvc.setOption("allowedMethods", "targetServiceImplicit");
- engine.deployService(SOAPAction, tgtSvc);
+ provider.deployService(new QName(null, SOAPAction), tgtSvc);
// invoke the service and verify the result
assertEquals("SOAP Action did not equal the targetService.",
@@ -154,10 +151,10 @@
*/
public void testMessageContextExplicit() throws Exception {
// Register the targetService service
- SOAPService tgtSvc = new SOAPService(RPCDispatcher);
+ SOAPService tgtSvc = new SOAPService(new RPCProvider());
tgtSvc.setOption("className", "test.RPCDispatch.Service");
tgtSvc.setOption("allowedMethods", "targetServiceExplicit");
- engine.deployService(SOAPAction, tgtSvc);
+ provider.deployService(new QName(null, SOAPAction), tgtSvc);
// invoke the service and verify the result
assertEquals("SOAP Action did not equal the targetService.",
@@ -169,10 +166,10 @@
*/
public void testNull() throws Exception {
// Register the echoInt service
- SOAPService echoInt = new SOAPService(RPCDispatcher);
+ SOAPService echoInt = new SOAPService(new RPCProvider());
echoInt.setOption("className", "test.RPCDispatch.Service");
echoInt.setOption("allowedMethods", "echoInt");
- engine.deployService(SOAPAction, echoInt);
+ provider.deployService(new QName(null, SOAPAction), echoInt);
// invoke the service and verify the result
assertNull("The result was not null as expected.", rpc("echoInt", new Object[] {null}));
@@ -183,10 +180,10 @@
*/
public void testSimpleFault() throws Exception {
// Register the reverseData service
- SOAPService simpleFault = new SOAPService(RPCDispatcher);
+ SOAPService simpleFault = new SOAPService(new RPCProvider());
simpleFault.setOption("className", "test.RPCDispatch.Service");
simpleFault.setOption("allowedMethods", "simpleFault");
- engine.deployService(SOAPAction, simpleFault);
+ provider.deployService(new QName(null, SOAPAction), simpleFault);
Object result = rpc("simpleFault", new Object[] {"foobar"});
assertTrue("Did not get a fault as expected.",
1.24 +7 -6 xml-axis/java/test/RPCDispatch/TestSerializedRPC.java
Index: TestSerializedRPC.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/RPCDispatch/TestSerializedRPC.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- TestSerializedRPC.java 26 Jan 2002 02:52:38 -0000 1.23
+++ TestSerializedRPC.java 28 Jan 2002 18:23:02 -0000 1.24
@@ -6,6 +6,8 @@
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
+import org.apache.axis.providers.java.RPCProvider;
+import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.TypeMappingRegistry;
@@ -41,21 +43,20 @@
"</soap:Body>\n" +
"</soap:Envelope>\n";
- private AxisServer engine = new AxisServer();
- private Handler RPCDispatcher;
+ private SimpleProvider provider = new SimpleProvider();
+ private AxisServer engine = new AxisServer(provider);
private String SOAPAction = "urn:reverse";
public TestSerializedRPC(String name) throws Exception {
super(name);
engine.init();
- RPCDispatcher = engine.getHandler("RPCDispatcher");
-
+
// Register the reverseString service
- SOAPService reverse = new SOAPService(RPCDispatcher);
+ SOAPService reverse = new SOAPService(new RPCProvider());
reverse.setOption("className", "test.RPCDispatch.Service");
reverse.setOption("allowedMethods", "*");
- engine.deployService(SOAPAction, reverse);
+ provider.deployService(SOAPAction, reverse);
}
/**
1.14 +111 -122 xml-axis/java/test/encoding/TestArrayListConversions.java
Index: TestArrayListConversions.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestArrayListConversions.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TestArrayListConversions.java 15 Jan 2002 17:57:03 -0000 1.13
+++ TestArrayListConversions.java 28 Jan 2002 18:23:03 -0000 1.14
@@ -1,12 +1,13 @@
package test.encoding;
import junit.framework.TestCase;
-import org.apache.axis.Handler;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.handlers.soap.SOAPService;
+import org.apache.axis.providers.java.RPCProvider;
import org.apache.axis.server.AxisServer;
import org.apache.axis.transport.local.LocalTransport;
+import org.apache.axis.configuration.SimpleProvider;
import javax.xml.rpc.namespace.QName;
import java.util.Iterator;
@@ -15,125 +16,113 @@
import java.util.Vector;
public class TestArrayListConversions extends TestCase {
- private static final String SERVICE_NAME = "TestArrayConversions";
-
- private Call call;
-
- public TestArrayListConversions()
- {
- super("service");
- }
-
- public TestArrayListConversions(String name)
- {
- super(name);
- init();
- }
-
- private static boolean equals(List list, Object obj)
- {
- if ((list == null) || (obj == null))
- return false;
-
- if (!obj.getClass().isArray()) return false;
-
- Object [] array = (Object [])obj;
- Iterator iter = list.iterator();
-
- for (int i=0; i < array.length; i++) {
- if (!(array[i].equals(iter.next()))) {
- return false;
- }
- }
-
- return true;
- }
-
- public void init()
- {
- try {
- Service ss = new Service();
- AxisServer server = new AxisServer();
- Handler disp = server.getHandler("RPCDispatcher");
- SOAPService service = new SOAPService(disp);
- service.setOption("className", "test.encoding.TestArrayListConversions");
- service.setOption("allowedMethods", "*");
-
- server.deployService(SERVICE_NAME, service);
-
- call = (Call) ss.createCall();
- call.setTransport( new LocalTransport(server) );
- }
- catch( Exception exp ) {
- exp.printStackTrace();
- }
-
- }
-
- public void testVectorConversion() throws Exception
- {
- Vector v = new Vector();
- v.addElement("Hi there!");
- v.addElement("This'll be a SOAP Array and then a LinkedList!");
- call.setOperationName( new QName(SERVICE_NAME, "echoLinkedList") );
- Object ret = call.invoke( new Object[] { v } );
- if (!equals(v, ret)) assertEquals("Echo LinkedList mangled the result. Result is underneath.\n" + ret, v, ret);
- }
-
- public void testLinkedListConversion() throws Exception
- {
- LinkedList l = new LinkedList();
- l.add("Linked list item #1");
- l.add("Second linked list item");
- l.add("This will be a SOAP Array then a Vector!");
-
- call.setOperationName( new QName(SERVICE_NAME, "echoVector") );
- Object ret = call.invoke( new Object[] { l } );
- if (!equals(l, ret)) assertEquals("Echo Vector mangled the result. Result is underneath.\n" + ret, l, ret);
- }
-
- public void testArrayConversion() throws Exception
- {
- Vector v = new Vector();
- v.addElement("Hi there!");
- v.addElement("This'll be a SOAP Array");
-
- call.setOperationName( new QName(SERVICE_NAME, "echoArray") );
- Object ret = call.invoke( new Object[] { v } );
- if (!equals(v, ret)) assertEquals("Echo Array mangled the result. Result is underneath\n" + ret, v, ret);
- }
-
- public static void main(String [] args)
- {
- TestArrayListConversions tester =
- new TestArrayListConversions("TestArrayListConversions");
- try {
- tester.testArrayConversion();
- tester.testLinkedListConversion();
- tester.testVectorConversion();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /****************************************************************
- *
- * Service methods - this class is also deployed as an Axis RPC
- * service for convenience. These guys just echo various things.
- *
- */
- public LinkedList echoLinkedList(LinkedList l)
- {
- return l;
- }
-
- public Vector echoVector(Vector v)
- {
- return v;
- }
-
- public Object [] echoArray(Object [] array)
- {
- return array;
- }
+ private static final String SERVICE_NAME = "TestArrayConversions";
+
+ private Call call;
+
+ public TestArrayListConversions() {
+ super("service");
+ }
+
+ public TestArrayListConversions(String name) {
+ super(name);
+ init();
+ }
+
+ private static boolean equals(List list, Object obj) {
+ if ((list == null) || (obj == null))
+ return false;
+
+ if (!obj.getClass().isArray()) return false;
+
+ Object[] array = (Object[]) obj;
+ Iterator iter = list.iterator();
+
+ for (int i = 0; i < array.length; i++) {
+ if (!(array[i].equals(iter.next()))) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public void init() {
+ try {
+ Service ss = new Service();
+
+ SimpleProvider provider = new SimpleProvider();
+ AxisServer server = new AxisServer(provider);
+ SOAPService service = new SOAPService(new RPCProvider());
+ service.setOption("className", "test.encoding.TestArrayListConversions");
+ service.setOption("allowedMethods", "*");
+
+ provider.deployService(SERVICE_NAME, service);
+
+ call = (Call) ss.createCall();
+ call.setTransport(new LocalTransport(server));
+ } catch (Exception exp) {
+ exp.printStackTrace();
+ }
+
+ }
+
+ public void testVectorConversion() throws Exception {
+ Vector v = new Vector();
+ v.addElement("Hi there!");
+ v.addElement("This'll be a SOAP Array and then a LinkedList!");
+ call.setOperationName(new QName(SERVICE_NAME, "echoLinkedList"));
+ Object ret = call.invoke(new Object[]{v});
+ if (!equals(v, ret)) assertEquals("Echo LinkedList mangled the result. Result is underneath.\n" + ret, v, ret);
+ }
+
+ public void testLinkedListConversion() throws Exception {
+ LinkedList l = new LinkedList();
+ l.add("Linked list item #1");
+ l.add("Second linked list item");
+ l.add("This will be a SOAP Array then a Vector!");
+
+ call.setOperationName(new QName(SERVICE_NAME, "echoVector"));
+ Object ret = call.invoke(new Object[]{l});
+ if (!equals(l, ret)) assertEquals("Echo Vector mangled the result. Result is underneath.\n" + ret, l, ret);
+ }
+
+ public void testArrayConversion() throws Exception {
+ Vector v = new Vector();
+ v.addElement("Hi there!");
+ v.addElement("This'll be a SOAP Array");
+
+ call.setOperationName(new QName(SERVICE_NAME, "echoArray"));
+ Object ret = call.invoke(new Object[]{v});
+ if (!equals(v, ret)) assertEquals("Echo Array mangled the result. Result is underneath\n" + ret, v, ret);
+ }
+
+ public static void main(String[] args) {
+ TestArrayListConversions tester = new TestArrayListConversions("TestArrayListConversions");
+ try {
+ tester.testArrayConversion();
+ tester.testLinkedListConversion();
+ tester.testVectorConversion();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /****************************************************************
+ *
+ * Service methods - this class is also deployed as an Axis RPC
+ * service for convenience. These guys just echo various things.
+ *
+ */
+ public LinkedList echoLinkedList(LinkedList l) {
+ return l;
+ }
+
+ public Vector echoVector(Vector v) {
+ return v;
+ }
+
+ public Object[] echoArray(Object[] array) {
+ return array;
+ }
}
1.8 +31 -32 xml-axis/java/test/encoding/TestBody.java
Index: TestBody.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestBody.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestBody.java 2 Nov 2001 03:07:42 -0000 1.7
+++ TestBody.java 28 Jan 2002 18:23:03 -0000 1.8
@@ -5,11 +5,15 @@
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
+import org.apache.axis.providers.java.RPCProvider;
+import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.handlers.soap.SOAPService;
import org.apache.axis.message.RPCElement;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.server.AxisServer;
+import javax.xml.rpc.namespace.QName;
+
/**
* Verify that deserialization actually can cause the soap service
* to be set...
@@ -22,40 +26,35 @@
private String namespace = "http://xml.apache.org/axis/TestBody";
- private String request =
- "<?xml version=\"1.0\"?>\n" +
- "<soap:Envelope " +
- "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
- "xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">" +
- "<soap:Body>\n" +
- "<method xmlns=\"" + namespace + "\">\n" +
- "<arg>5</arg>" +
- "</method>\n" +
- "</soap:Body>\n" +
- "</soap:Envelope>\n";
+ private String request = "<?xml version=\"1.0\"?>\n" + "<soap:Envelope " + "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " + "xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "<soap:Body>\n" + "<method xmlns=\"" + namespace + "\">\n" + "<arg>5</arg>" + "</method>\n" + "</soap:Body>\n" + "</soap:Envelope>\n";
public void testBodyNamespace() throws Exception {
+ SimpleProvider provider = new SimpleProvider();
+
+ // register the service with the engine
+ SOAPService target = new SOAPService(new RPCProvider());
+ provider.deployService(new QName(null,namespace), target);
+
+ // setup
+ AxisEngine engine = new AxisServer(provider);
+ engine.init();
+
+ // create a message in context
+ MessageContext msgContext = new MessageContext(engine);
+ Message message = new Message(request);
+ message.setMessageContext(msgContext);
+
+ // ensure that the message is parsed
+ SOAPEnvelope envelope = message.getSOAPPart().getAsSOAPEnvelope();
+ RPCElement body = (RPCElement) envelope.getFirstBody();
+
+ // verify the service is set
+ assertEquals("Namespace does not equal the message context target service.", namespace, msgContext.getTargetService());
+ assertEquals("The target is not the same as the message context service handler", target, msgContext.getServiceHandler());
+ }
- // setup
- AxisEngine engine = new AxisServer();
- engine.init();
-
- // register the service with the engine
- Handler RPCDispatcher = engine.getHandler("RPCDispatcher");
- SOAPService target = new SOAPService(RPCDispatcher);
- engine.deployService(namespace, target);
-
- // create a message in context
- MessageContext msgContext = new MessageContext(engine);
- Message message = new Message(request);
- message.setMessageContext(msgContext);
-
- // ensure that the message is parsed
- SOAPEnvelope envelope = message.getSOAPPart().getAsSOAPEnvelope();
- RPCElement body = (RPCElement)envelope.getFirstBody();
-
- // verify the service is set
- assertEquals("Namespace does not equal the message context target service.", namespace, msgContext.getTargetService());
- assertEquals("The target is not the same as the message context service handler", target, msgContext.getServiceHandler());
+ public static void main(String[] args) throws Exception {
+ TestBody tester = new TestBody("test");
+ tester.testBodyNamespace();
}
}
1.22 +1 -1 xml-axis/java/test/encoding/TestDeser.java
Index: TestDeser.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestDeser.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- TestDeser.java 29 Nov 2001 11:11:31 -0000 1.21
+++ TestDeser.java 28 Jan 2002 18:23:03 -0000 1.22
@@ -274,6 +274,6 @@
public static void main(String [] args) throws Exception
{
TestDeser tester = new TestDeser("test");
- tester.testUntyped();
+ tester.testString();
}
}
1.11 +5 -7 xml-axis/java/test/encoding/TestXsiType.java
Index: TestXsiType.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestXsiType.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TestXsiType.java 26 Jan 2002 02:52:38 -0000 1.10
+++ TestXsiType.java 28 Jan 2002 18:23:03 -0000 1.11
@@ -3,6 +3,7 @@
import junit.framework.TestCase;
import org.apache.axis.MessageContext;
import org.apache.axis.AxisEngine;
+import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.transport.local.LocalTransport;
import org.apache.axis.providers.java.RPCProvider;
import org.apache.axis.handlers.soap.SOAPService;
@@ -27,7 +28,8 @@
private String header;
private String footer;
- private AxisServer server = new AxisServer();
+ private SimpleProvider provider = new SimpleProvider();
+ private AxisServer server = new AxisServer(provider);
public TestXsiType()
{
@@ -44,7 +46,7 @@
public void testNoXsiTypes()
throws Exception
{
- MessageContext msgContext = new MessageContext(new AxisServer());
+ MessageContext msgContext = new MessageContext(server);
// Don't serialize xsi:type attributes
msgContext.setProperty(Call.SEND_TYPE_ATTR, "false" );
@@ -75,16 +77,12 @@
*/
public void testTypelessDeserialization() throws Exception
{
- // Set up a server to NOT send XSI types, and deploy
- // this class as a service there.
-
- AxisServer server = new AxisServer();
server.setOption(AxisEngine.PROP_SEND_XSI, Boolean.FALSE);
SOAPService service = new SOAPService(new RPCProvider());
service.setOption("className", "test.encoding.TestXsiType");
service.setOption("allowedMethods", "*");
- server.deployService("TestService", service);
+ provider.deployService("TestService", service);
// Call that same server, accessing a method we know returns
// a double. We should figure this out and deserialize it
1.20 +11 -5 xml-axis/java/test/functional/TestTCPTransportSample.java
Index: TestTCPTransportSample.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/functional/TestTCPTransportSample.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- TestTCPTransportSample.java 11 Jan 2002 21:42:11 -0000 1.19
+++ TestTCPTransportSample.java 28 Jan 2002 18:23:03 -0000 1.20
@@ -59,6 +59,9 @@
import junit.framework.TestCase;
import org.apache.axis.AxisFault;
import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.Constants;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.configuration.FileProvider;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
@@ -83,7 +86,7 @@
}
public void doTestDeploy () throws Exception {
- String[] args = { "-ltcp://localhost:8088", "samples/transport/deploy.xml" };
+ String[] args = { "-ltcp://localhost:8088", "samples/transport/deploy.wsdd" };
AdminClient.main(args);
}
@@ -99,11 +102,14 @@
tester.getQuote(new String [] { "-ltcp://localhost:8088", "XXX" });
String symbol = "XXX"; // args[0] ;
- Service service = new Service();
- Call call = (Call) service.createCall();
-
+ SimpleProvider provider =
+ new SimpleProvider(
+ new FileProvider(Constants.CLIENT_CONFIG_FILE));
SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
- service.getEngine().deployTransport("tcp", c);
+ provider.deployTransport("tcp", c);
+
+ Service service = new Service(provider);
+ Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new URL("tcp://localhost:8088") );
call.setOperationName( new QName("urn:xmltoday-delayed-quotes", "getQuote") );
1.18 +1 -1 xml-axis/java/test/functional/TestTransportSample.java
Index: TestTransportSample.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/functional/TestTransportSample.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- TestTransportSample.java 31 Oct 2001 23:50:22 -0000 1.17
+++ TestTransportSample.java 28 Jan 2002 18:23:03 -0000 1.18
@@ -72,7 +72,7 @@
}
public void doTestDeploy () throws Exception {
- String[] args = { "-llocal:", "samples/transport/deploy.xml" };
+ String[] args = { "-llocal:", "samples/transport/deploy.wsdd" };
AdminClient.main(args);
}
1.9 +4 -2 xml-axis/java/test/outparams/TestOutParams.java
Index: TestOutParams.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/outparams/TestOutParams.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestOutParams.java 4 Jan 2002 22:30:04 -0000 1.8
+++ TestOutParams.java 28 Jan 2002 18:23:03 -0000 1.9
@@ -5,6 +5,7 @@
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
+import org.apache.axis.configuration.SimpleProvider;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
@@ -40,7 +41,8 @@
private Service s_service = null ;
private Call client = null ;
- private AxisServer server = new AxisServer();
+ private SimpleProvider provider = new SimpleProvider();
+ private AxisServer server = new AxisServer(provider);
public TestOutParams(String name) {
super(name);
@@ -59,7 +61,7 @@
// ??? Do we need to register the handler?
SOAPService service = new SOAPService(h);
- server.deployService(serviceURN, service);
+ provider.deployService(serviceURN, service);
// Make sure the local transport uses the server we just configured
client.setTransport(new LocalTransport(server));
1.9 +11 -5 xml-axis/java/test/session/TestSimpleSession.java
Index: TestSimpleSession.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/session/TestSimpleSession.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestSimpleSession.java 15 Jan 2002 17:57:03 -0000 1.8
+++ TestSimpleSession.java 28 Jan 2002 18:23:03 -0000 1.9
@@ -11,7 +11,10 @@
import org.apache.axis.transport.local.LocalTransport;
import org.apache.axis.server.AxisServer;
import org.apache.axis.MessageContext;
+import org.apache.axis.Constants;
import org.apache.axis.configuration.XMLStringProvider;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.configuration.FileProvider;
import org.apache.axis.deployment.wsdd.WSDDConstants;
import org.apache.axis.providers.java.RPCProvider;
@@ -31,7 +34,7 @@
" <transport name=\"local\" " +
"pivot=\"java:org.apache.axis.transport.local.LocalSender\"/>\n" +
"</deployment>";
- static XMLStringProvider provider = new XMLStringProvider(clientWSDD);
+ static XMLStringProvider clientProvider = new XMLStringProvider(clientWSDD);
/**
* Default constructor for use as service
@@ -84,11 +87,14 @@
service.setOption("className", "test.session.TestSimpleSession");
service.setOption("allowedMethods", "counter");
- AxisServer server = new AxisServer();
- server.deployService("sessionTest", service);
+ SimpleProvider simpleProvider =
+ new SimpleProvider(
+ new FileProvider(Constants.SERVER_CONFIG_FILE));
+ AxisServer server = new AxisServer(simpleProvider);
+ simpleProvider.deployService("sessionTest", service);
// Set up the client side (using the WSDD above)
- Service svc = new Service(provider);
+ Service svc = new Service(clientProvider);
Call call = (Call)svc.createCall();
svc.setMaintainSession(true);
call.setTransport(new LocalTransport(server));
@@ -106,7 +112,7 @@
2);
// Now start fresh and confirm a new session
- Service svc2 = new Service(provider);
+ Service svc2 = new Service(clientProvider);
Call call2 = (Call)svc2.createCall();
svc2.setMaintainSession(true);
call2.setTransport(new LocalTransport(server));
1.3 +6 -4 xml-axis/java/test/soap/TestHeaderAttrs.java
Index: TestHeaderAttrs.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/soap/TestHeaderAttrs.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestHeaderAttrs.java 15 Jan 2002 17:57:03 -0000 1.2
+++ TestHeaderAttrs.java 28 Jan 2002 18:23:03 -0000 1.3
@@ -8,6 +8,8 @@
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.providers.java.RPCProvider;
import org.apache.axis.transport.local.LocalTransport;
import org.apache.axis.client.Call;
import org.apache.axis.handlers.soap.SOAPService;
@@ -52,7 +54,8 @@
static SOAPHeader badHeader = new SOAPHeader(BAD_HEADER_NS,
BAD_HEADER_NAME);
- private AxisServer engine = new AxisServer();
+ private SimpleProvider provider = new SimpleProvider();
+ private AxisServer engine = new AxisServer(provider);
private LocalTransport localTransport = new LocalTransport(engine);
private Handler RPCDispatcher;
@@ -74,15 +77,14 @@
engine.init();
localTransport.setUrl(localURL);
- Handler dispatcher = engine.getHandler("RPCDispatcher");
SOAPService service = new SOAPService(new TestHandler(),
- dispatcher,
+ new RPCProvider(),
null);
service.setOption("className", TestService.class.getName());
service.setOption("allowedMethods", "*");
- engine.deployService("testService", service);
+ provider.deployService("testService", service);
}
/**
1.3 +1 -4 xml-axis/java/test/wsdd/TestBadWSDD.java
Index: TestBadWSDD.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdd/TestBadWSDD.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestBadWSDD.java 15 Jan 2002 17:57:03 -0000 1.2
+++ TestBadWSDD.java 28 Jan 2002 18:23:03 -0000 1.3
@@ -92,10 +92,7 @@
try {
client.process(stream);
} catch (Exception e) {
- assertEquals("Wrong exception message processing bad Handler",
- "Must include type attribute for Handler deployment!",
- e.getMessage());
- return;
+ return;
}
fail("Successfully processed bad WSDD!");
1.2 +2 -1 xml-axis/java/test/wsdd/TestStructure.java
Index: TestStructure.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdd/TestStructure.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestStructure.java 14 Nov 2001 21:22:54 -0000 1.1
+++ TestStructure.java 28 Jan 2002 18:23:03 -0000 1.2
@@ -40,7 +40,8 @@
public static void main(String[] args) throws Exception
{
TestStructure tester = new TestStructure("TestStructure");
- tester.run();
+ tester.setUp();
+ tester.testServiceBackReference();
}
public void testChainAnonymousHandler() throws Exception
1.3 +5 -1 xml-axis/java/test/wsdd/TestUndeployment.java
Index: TestUndeployment.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/wsdd/TestUndeployment.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestUndeployment.java 3 Dec 2001 03:36:06 -0000 1.2
+++ TestUndeployment.java 28 Jan 2002 18:23:03 -0000 1.3
@@ -72,7 +72,11 @@
InputStream is = new StringBufferInputStream(undeployDoc);
WSDDDocument doc = new WSDDDocument(XMLUtils.newDocument(is));
- server.deployWSDD(doc);
+
+ WSDDDeployment dep = provider.getDeployment();
+ doc.deploy(dep);
+
+ server.refreshGlobalOptions();
handler = server.getHandler("other");
assertNull("Undeployed handler is still available", handler);