Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Swordfish Documentation: Architecture: Internal Service Proxy"

(See also)
 
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
<h1>Component diagrams</h1>
+
== Overview ==
 +
The internal service proxy allows plugins to access the NMR inside Swordfish.
  
== Sketch of сomponent сlasses for Internal Service Proxy Plugin ==
+
== Description ==
[[Image:Internal_Proxy_Classes.png]]
+
=== Component diagrams ===
  
<h1>Plugin description</h1>
+
==== Sketch of сomponent сlasses for internal Service Proxy Plugin ====
 +
[[Image:Service_Proxy_Classes.png]]
 +
 
 +
Example of ServiceProxy usage:
 +
<ul>
 +
<li>proxy injection (at runtime available as OSGi service):</li>
 +
<pre>
 +
    <osgi:reference id="serviceProxy"
 +
    interface="org.eclipse.swordfish.core.proxy.ServiceProxy" />
 +
 
 +
    <bean id="ASFRegistryProvider"
 +
        class="org.eclipse.swordfish.internal.resolver.backend.remote.ASFRegistryProvider"
 +
        p:proxy-ref="serviceProxy"/>
 +
</pre>
 +
<li>invocation of target service:</li>
 +
<pre>
 +
public class ASFRegistryProvider extends AbstractDocumentProvider {
 +
 
 +
    private ServiceProxy proxy;
 +
 
 +
    @Override
 +
    public Collection<ServiceDescription<?>> getServiceProviderDescriptions(QName interfaceName) {
 +
        String res = null;
 +
        try {
 +
            res = proxy.invokeRequestResponseOperation(
 +
                QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}ServiceRegistryProvider"),
 +
                QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}xlookUp_serviceProvider"),
 +
                "<inMessage/>");
 +
        } catch (Exception e) {
 +
            e.printStackTrace();
 +
        }
 +
 
 +
        // further processing...
 +
 
 +
        return null;
 +
    }
 +
 
 +
    public void setProxy(ServiceProxy proxy) {
 +
        this.proxy = proxy;
 +
    }
 +
 
 +
}
 +
</pre>
 +
</ul>
 
<br/>
 
<br/>
 +
During invocation ServiceProxy performs the following steps:
 +
* creates new NMR Exchange for provided operation;
 +
* looks up outbound endpoint from the NMR using provided service name;
 +
* sends exchange to NMR according to selected message exchange pattern (e.g. "http://www.w3.org/ns/wsdl/in-out").
 +
 +
'''NOTE: '''Current version of proxy assumes that outbound endpoint of target service is already registered within ServiceMix NMR.
 +
<br/><br/>
 +
 +
== See also ==
 +
[http://www.eclipse.org/swordfish/docs/apidocs Swordfish JavaDoc]
 +
<br/><br/>
 +
----
 +
[[Swordfish_Documentation:_Architecture | Architecture overview ]]

Latest revision as of 05:19, 20 November 2009

Overview

The internal service proxy allows plugins to access the NMR inside Swordfish.

Description

Component diagrams

Sketch of сomponent сlasses for internal Service Proxy Plugin

Service Proxy Classes.png

Example of ServiceProxy usage:

  • proxy injection (at runtime available as OSGi service):
  •     <osgi:reference id="serviceProxy"
        	interface="org.eclipse.swordfish.core.proxy.ServiceProxy" />
    
        <bean id="ASFRegistryProvider"
            class="org.eclipse.swordfish.internal.resolver.backend.remote.ASFRegistryProvider"
            p:proxy-ref="serviceProxy"/>
    
  • invocation of target service:
  • public class ASFRegistryProvider extends AbstractDocumentProvider {
    
        private ServiceProxy proxy;
    
        @Override
        public Collection<ServiceDescription<?>> getServiceProviderDescriptions(QName interfaceName) {
            String res = null;
            try {
                res = proxy.invokeRequestResponseOperation(
                    QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}ServiceRegistryProvider"),
                    QName.valueOf("{http://services.sopware.org/registry/ServiceRegistryProvider/1.0}xlookUp_serviceProvider"),
                    "<inMessage/>");
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            // further processing...
    
            return null;
        }
    
        public void setProxy(ServiceProxy proxy) {
            this.proxy = proxy;
        }
    
    }
    


During invocation ServiceProxy performs the following steps:

  • creates new NMR Exchange for provided operation;
  • looks up outbound endpoint from the NMR using provided service name;
  • sends exchange to NMR according to selected message exchange pattern (e.g. "http://www.w3.org/ns/wsdl/in-out").

NOTE: Current version of proxy assumes that outbound endpoint of target service is already registered within ServiceMix NMR.

See also

Swordfish JavaDoc


Architecture overview

Back to the top