Hi all, I am currently working on the project “Versioning support for ESB artifacts”. I have completed implementing the solution in wso2 synapse and also done necessary changes in the developer studio as well. According to the project, proxy service and sequence artifacts will be deployed and dispatched as follows.
Proxy service deployment A versioned proxy service should be defined as follows. <proxy name="testproxy" startOnLoad="true" trace="disable" transports="https http" version="1.0.0" isDefault=”true”></proxy> The defined version will be concatenated with the proxy name to generate a unique id for the proxy service. The proxy service will be deployed using this unique id. Eg. testproxy/1.0.0 The isDefault attribute helps the user to name the respective version as the default version.(See proxy service dispatching for effect of isDefault) If there is no version attribute defined, the proxy is deployed by its name. This measure is taken to support backward compatibility. Proxy service dispatching A proxy service should be referred in a request as follows. The following requests are processed and the proxy service is dispatched. - http://localhost:8280/services/StockQuoteProxy/1.0.0 or http://localhost:8280/services/StockQuoteProxy/1.0.0.StockQuoteProxy/1.0.0HttpSoap11Endpoint If the request is sent as follows, the proxy service with the respective version is deployed. - http://localhost:8280/services/StockQuoteProxy or http://localhost:8280/services/StockQuoteProxy.StockQuoteProxy/HttpSoap11Endpoint If a service is not found for the above request, 1). If the user have defined a proxy service with the attribute isDefault = “true” with the name requested, it will be dispatched. 2).If no axis service is found, it will see if there is only one proxy service containing the name provided. If so it is dispatched. 2). If there are many proxy services with the given name, the service with the highest version is dispatched. Serializing an artifact When serializing an artifact, both name and version can be taken from the artifact object to create the serialized artifact. Sequence deployment Ideally sequence deployment should be as follows. <sequence name="test" trace="disable" xmlns="http://ws.apache.org/ns/synapse" version=”1.0.0”> </sequence> The defined sequence name will be concatenated with the version to create a unique id. Eg.test/1.0.0 The deployed sequence will be added to the local registry with this unique id as the key. Sequence dispatching A versioned sequence should be referenced as follows. <sequence key="test/1.0.0”/> <target insequence=”testInSeq/1.0.0” outSequence=”testOutSeq/1.0.0”/> Developer Studio In the developer studio, - When creating a proxy service the user can define a version(not a mandatory field). If the user is entering a version number, it is validated to see if it is in the right format. The user also can tick whether the proxy service is a default version. - When creating a sequence, similarly the version can be provided(not mandatory). Also if a version is provided, it is validated whether it is in the right format. - When dragging and dropping available sequences, the version will be appended automatically. Please do reply if there is any feedback. Thank you, Amjadh Ifthikar. -- Amjadh Ifthikar Trainee Software Engineer WSO2 Inc. Mobile: +94777459181
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
