You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by al...@apache.org on 2018/05/14 07:44:42 UTC

[royale-asjs] branch feature/MXRoyale updated: WebService.as Added

This is an automated email from the ASF dual-hosted git repository.

alinakazi pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
     new 426bbb9  WebService.as Added
426bbb9 is described below

commit 426bbb960b2e16d9883a690de46ab18c5bc83065
Author: alinakazi <AL...@GMAIL.COM>
AuthorDate: Mon May 14 12:44:39 2018 +0500

    WebService.as Added
---
 .../src/main/royale/mx/rpc/soap/WebService.as      | 443 +++++++++++++++++++++
 1 file changed, 443 insertions(+)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/rpc/soap/WebService.as b/frameworks/projects/MXRoyale/src/main/royale/mx/rpc/soap/WebService.as
new file mode 100644
index 0000000..d35fce4
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/rpc/soap/WebService.as
@@ -0,0 +1,443 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.rpc.soap
+{
+
+/* import flash.events.Event;
+ */
+ import org.apache.royale.events.Event;
+ 
+import mx.core.mx_internal;
+/* import mx.logging.ILogger;
+import mx.logging.Log;
+import mx.messaging.ChannelSet;
+import mx.messaging.channels.DirectHTTPChannel;
+import mx.messaging.config.LoaderConfig;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.rpc.AbstractOperation;
+import mx.rpc.AbstractService;
+import mx.rpc.AsyncRequest;
+import mx.rpc.Fault;
+import mx.rpc.events.FaultEvent;
+import mx.rpc.events.WSDLLoadEvent;
+import mx.rpc.http.HTTPService;
+import mx.rpc.wsdl.WSDL;
+import mx.rpc.wsdl.WSDLLoader;
+import mx.rpc.wsdl.WSDLOperation;
+import mx.rpc.wsdl.WSDLPort;
+import mx.utils.URLUtil;
+import mx.utils.XMLUtil;
+ */
+use namespace mx_internal;
+
+/**
+ * The <code>LoadEvent.LOAD</code> is dispatched when the WSDL
+ * document has loaded successfully.
+ *
+ * @eventType mx.rpc.soap.LoadEvent.LOAD
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.4
+ */
+/* [Event(name="load", type="mx.rpc.soap.LoadEvent")]
+
+[ResourceBundle("rpc")] */
+
+/**
+ * The WebService class provides access to SOAP-based web services on remote
+ * servers.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.4
+ */
+public dynamic class WebService
+{ // extends AbstractWebService
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    // 
+    //--------------------------------------------------------------------------
+
+    /**
+     * Creates a new WebService.  The destination, if specified, should match
+     * an entry in services-config.xml.  If unspecified, the WebService uses
+     * the DefaultHTTP destination. The <code>rootURL</code> is required if you
+     * intend to use a relative URL to find the WSDL document for this WebService.
+     *
+     * @param destination The destination of the WebService, should match a destination 
+     * name in the services-config.xml file.
+     *
+     * @param rootURL The root URL of the WebService.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+    public function WebService(destination:String = null, rootURL:String = null)
+    {
+      /*   super(destination, rootURL);
+
+        _ready = false;
+        _log = Log.getLogger("mx.rpc.soap.WebService"); */
+    }
+
+    //-------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //-------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    /* private var resourceManager:IResourceManager =
+									ResourceManager.getInstance(); */
+    //-------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //-------------------------------------------------------------------------
+
+    /* mx_internal function get wsdlFault():Boolean
+    {
+        return _wsdlFault;
+    }
+
+    [Inspectable(defaultValue="true", category="General")] */
+
+    /**
+     * The location of the WSDL document for this WebService. If you use a
+     * relative URL, make sure that the <code>rootURL</code> has been specified
+     * or that you created the WebService in MXML.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+   /*  public function get wsdl():String
+    {
+        return _wsdlURL;
+    }
+
+    public function set wsdl(w:String):void
+    {
+        _wsdlURL = w;
+    } */
+
+    //-------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //-------------------------------------------------------------------------
+
+    /**
+     * Returns a Boolean value that indicates whether the WebService is ready to
+     * load a WSDL (does it have a valid destination or wsdl specified).
+     *
+     * @return Returns <code>true</code> if the WebService is ready to load a WSDL;
+     * otherwise, returns <code>false</code>.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+   /*  public function canLoadWSDL():Boolean
+    {
+        if (wsdl)
+            return true;
+        if (destination != DEFAULT_DESTINATION_HTTP
+            && destination != DEFAULT_DESTINATION_HTTPS)
+            return true;
+        return false;
+    } */
+
+    /**
+     * Returns an Operation of the given name. If the Operation wasn't
+     * created beforehand, a new <code>mx.rpc.soap.Operation</code> is created
+     * during this call. Operations are usually accessible by simply naming
+     * them after the service variable (<code>myService.someOperation</code>),
+     * but if your Operation name happens to match a defined method on the
+     * service (like <code>setCredentials</code>), you can use this method to
+     * get the Operation instead.
+     * @param name Name of the Operation.
+     * @return Operation that executes for this name.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+    /* override public function getOperation(name:String):mx.rpc.AbstractOperation
+    {
+        var op:mx.rpc.AbstractOperation = super.getOperation(name);
+        if (op == null)
+        {
+            op = new Operation(this, name);
+            _operations[name] = op;
+            op.asyncRequest = asyncRequest;
+            op.setKeepLastResultIfNotSet(_keepLastResult);
+            initializeOperation(op as Operation);
+        }
+        return op;
+    } */
+
+    /**
+     * Instructs the WebService to download the WSDL document.  The WebService
+     * calls this method automatically WebService when specified in the
+     * WebService MXML tag, but it must be called manually if you create the
+     * WebService object in ActionScript after you have specified the
+     * <code>destination</code> or <code>wsdl</code> property value.
+     *
+     * @param uri If the wsdl hasn't been specified previously, it may be
+     * specified here.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+    public function loadWSDL(uri:String = null):void
+    {
+       /*  if (uri != null)
+        {
+            wsdl = uri;
+        }
+
+        // If wsdl is not set check useProxy is true and a destination has
+        // been set...
+        if (!wsdl)
+        {
+			var message:String;
+            if (!useProxy)
+            {
+				message = resourceManager.getString(
+					"rpc", "mustSpecifyWSDLLocation");
+                var fault:Fault = new Fault("Client.WSDL", message);
+                dispatchEvent(FaultEvent.createEvent(fault));
+                return;
+            }
+            else if ((destination == null) || !destinationSet 
+                || (destination == DEFAULT_DESTINATION_HTTP) 
+                || (destination == DEFAULT_DESTINATION_HTTPS))
+            {
+				message = resourceManager.getString(
+					"rpc", "destinationOrWSDLNotSpecified");
+                var fault1:Fault = new Fault("Client.WSDL", message);
+                dispatchEvent(FaultEvent.createEvent(fault1));
+                return;
+            }
+        }
+
+        // If a destination wasn't set and the app was loaded via HTTPS
+        // then use DefaultHTTPS instead of DefaultHTTP for our destination
+        if (!destinationSet && URLUtil.isHttpsURL(wsdl))
+        {
+            // We avoid changing super.destination as we don't want to change
+            // the current useProxy flag...
+            asyncRequest.destination = DEFAULT_DESTINATION_HTTPS;
+            destinationSet = true;
+        }
+
+        _wsdlLoader = new WSDLLoader(deriveHTTPService());
+        _wsdlLoader.addEventListener(WSDLLoadEvent.LOAD, wsdlHandler);
+        _wsdlLoader.addEventListener(FaultEvent.FAULT, wsdlFaultHandler);
+
+        // Get the WSDL
+        _wsdlFault = false;
+        _wsdlLoader.load(wsdl); */
+    }
+
+    /**
+     * Represents an instance of WebService as a String, describing
+     * important properties such as the destination id and the set of
+     * channels assigned.
+     *
+     * @return Returns a String representation of the WebService.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.4
+     */
+   /*  public function toString():String
+    {
+        var s:String = "[WebService ";
+        s += " destination=\"" + destination + "\"";
+        if (wsdl)
+            s += " wsdl=\"" + wsdl + "\"";
+        s += " channelSet=\"" + channelSet + "\"]";
+        return s;
+    } */
+
+    //---------------------------------
+    // Helper methods
+    //---------------------------------
+
+    /* mx_internal function wsdlFaultHandler(event:FaultEvent):void
+    {
+        // remember that the wsdl failed
+        _wsdlFault = true;
+
+        // we just chain and fire
+        dispatchEvent(event);
+
+        // also inform enqueued operations of the wsdl failure
+        unEnqueueCalls(event.fault);
+    } */
+
+    /* mx_internal function wsdlHandler(event:WSDLLoadEvent):void
+    {
+        _log.debug("WSDL loaded");
+        _wsdl = event.wsdl;
+
+        // Record the SOAP address location as the "endpointURI"
+        try
+        {
+            var wsdlPort:WSDLPort = _wsdl.getPort(service, port);
+            _endpointURI = wsdlPort.endpointURI;
+
+            // Resolve any relative endpoint URLs against the WSDL URL
+            if (!URLUtil.isHttpURL(_endpointURI) && event.location != null)
+                _endpointURI = URLUtil.getFullURL(event.location, _endpointURI);
+
+            _service = wsdlPort.service.name;
+            _port = wsdlPort.name;
+
+            // Operations may have been created before the WSDL was loaded so
+            // we initialize them here before unenqueuing any calls.
+            for each (var op:Operation in _operations)
+            {
+                initializeOperation(op);
+            }
+
+            _ready = true;        
+
+            // Now that we're ready, dispatch load event
+            // Note that we dispatch a legacy mx.rpc.soap.LoadEvent here instead to
+            // maintain backwards compatibility...
+            var loadEvent:LoadEvent = LoadEvent.createEvent(event.wsdl, event.location);
+            dispatchEvent(loadEvent);
+
+            unEnqueueCalls();
+        }
+        catch(fault:Fault)
+        {
+            var faultEvent:FaultEvent = FaultEvent.createEvent(fault);
+            dispatchEvent(faultEvent);
+            super.unEnqueueCalls(fault); // Jump straight to fault handling; ops cannot be initialized.
+            return;
+        }
+        catch(error:Error)
+        {
+            var errorMessage:String = error.message ? error.message : ""; 
+			var message:String =  resourceManager.getString(
+				"rpc", "unexpectedException", [ errorMessage ])          
+            var fault:Fault = new Fault("WSDLError", message);
+            fault.rootCause = error;
+            var faultEvent2:FaultEvent = FaultEvent.createEvent(fault);
+            dispatchEvent(faultEvent2);
+            super.unEnqueueCalls(fault); // Jump straight to fault handling; ops cannot be initialized.
+            return;
+        }
+    } */
+
+    /**
+     * @private
+     */
+    /* mx_internal function deriveHTTPService():HTTPService
+    {
+        var httpService:HTTPService = new HTTPService();
+        httpService.asyncRequest = asyncRequest;
+        httpService.setKeepLastResultIfNotSet(_keepLastResult);
+        if (destination)
+            httpService.destination = destination;
+        httpService.useProxy = useProxy;
+        httpService.resultFormat = HTTPService.RESULT_FORMAT_XML;
+        httpService.rootURL = rootURL;
+        httpService.headers = httpHeaders;
+        return httpService;
+    } */
+
+   /**
+    * Initializes a new Operation.
+    *
+    * @param operation The Operation to initialize.
+    *  
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Royale 0.9.4
+    */
+    /* protected function initializeOperation(operation:Operation):void
+    {
+        if (_wsdl != null)
+        {
+            var wsdlOp:mx.rpc.wsdl.WSDLOperation = _wsdl.getOperation(operation.name, service, port);
+            if (operation.endpointURI == null) // Only set if the operation has not override the endpoint URI.
+                operation.endpointURI = endpointURI;
+            operation.wsdlOperation = wsdlOp;
+        }
+    } */
+
+    /* private function dispatchFault(faultCode:String, faultString:String, faultDetail:String = null):void
+    {
+        var fault:Fault = new Fault(faultCode, faultString, faultDetail);
+        var event:FaultEvent = FaultEvent.createEvent(fault);
+        dispatchEvent(event);
+    } */
+
+    //--------------------------------------------
+    // Backing variables for public getter/setters
+    //--------------------------------------------
+    
+	//private var _wsdlURL:String;
+
+    //---------------------------------
+    // Internal properties
+    //---------------------------------
+    
+	/* private var _log:ILogger;
+    
+	private var _wsdlFault:Boolean;
+    
+	private var _wsdl:mx.rpc.wsdl.WSDL;
+    
+	private var _wsdlLoader:WSDLLoader; */
+
+    //--------------------------------------------------------------------------
+    //
+    // Static Constants
+    // 
+    //--------------------------------------------------------------------------
+
+    /* public static const DEFAULT_DESTINATION_HTTP:String = "DefaultHTTP";
+    
+	public static const DEFAULT_DESTINATION_HTTPS:String = "DefaultHTTPS"; */
+}
+
+}

-- 
To stop receiving notification emails like this one, please contact
alinakazi@apache.org.