Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Swordfish Documentation: Architecture: Internal Service Proxy"
(→See also) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | == 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 ==== | |
− | Example of | + | [[Image:Service_Proxy_Classes.png]] |
+ | |||
+ | Example of ServiceProxy usage: | ||
<ul> | <ul> | ||
<li>proxy injection (at runtime available as OSGi service):</li> | <li>proxy injection (at runtime available as OSGi service):</li> | ||
<pre> | <pre> | ||
− | <osgi:reference id=" | + | <osgi:reference id="serviceProxy" |
− | interface="org.eclipse.swordfish.core.proxy. | + | interface="org.eclipse.swordfish.core.proxy.ServiceProxy" /> |
<bean id="ASFRegistryProvider" | <bean id="ASFRegistryProvider" | ||
class="org.eclipse.swordfish.internal.resolver.backend.remote.ASFRegistryProvider" | class="org.eclipse.swordfish.internal.resolver.backend.remote.ASFRegistryProvider" | ||
− | p:proxy-ref=" | + | p:proxy-ref="serviceProxy"/> |
</pre> | </pre> | ||
<li>invocation of target service:</li> | <li>invocation of target service:</li> | ||
Line 20: | Line 23: | ||
public class ASFRegistryProvider extends AbstractDocumentProvider { | public class ASFRegistryProvider extends AbstractDocumentProvider { | ||
− | private | + | private ServiceProxy proxy; |
@Override | @Override | ||
Line 39: | Line 42: | ||
} | } | ||
− | public void setProxy( | + | public void setProxy(ServiceProxy proxy) { |
this.proxy = proxy; | this.proxy = proxy; | ||
} | } | ||
Line 47: | Line 50: | ||
</ul> | </ul> | ||
<br/> | <br/> | ||
− | During invocation | + | 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
Contents
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
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"/>
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.