+1

On 3/1/06, Paul Fremantle <[EMAIL PROTECTED]> wrote:
How about this implementation of what you are describing.

1) Lets indirect this out of SynEnv:

SynapseEnvironment {
    ResourceHelper getResourceHelper();
}

public interface ResourceHelper {
    OMElement get(String uri); // get a resource
    OMElement get(String uri, ResourceUpdateAware mediator); // get a resource and be notified of changes
    void registerResourceHandler(ResourceHandler rh, String urlRoot);
         // register a handler for a given set of URLs (which share the same root)
    void notifyUpdate(String uriRoot);
         // a resource handler uses this to notify that all resources with that root have changed (Resource Push model)
}

public interface ResourceHandler {
    OMElement get(String uri);

    void setProperty(String name, String value);
    String getProperty(String name);
    String[] getPropertyNames();

    boolean isUpdated(String uriRoot); // used to poll if resource has changed (Pull model)
}

<synapse.xml>

<resource type="o.a.s.resources.HttpResource" uri-root=" http://fremantle.org/resources/">
   <property name="http.username">paul</property>
   <property name="http.password">pass</property>
   <property name=" http.proxy">proxy:80</property>
</resource>

Paul




On 3/1/06, Soumadeep < [EMAIL PROTECTED]> wrote:
Paul is right, instead of passing an object we could have property files which will have the connection related data. Further, we can generalize the way the get method is implemented, what I mean is we can have an interface like ResourceHandler so that others can implement it as required ... something like LDAPResourceHandler implements ResourceHandler which will have a get method and depending on what was configured the resource will be fetched.
 
We can put the property values in Synapse.xml, so you might end up having multiple resource endpoints with property sets required for making a connection, though we need to think about whether to provide the flexibility in terms of mediators being able to call different ResourceHandlers for a session.
 
-Soumadeep
-----Original Message-----
From: Paul Fremantle [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, February 28, 2006 5:59 PM
To: [email protected]
Subject: Re: get(String url) issues for getting external resources

I think we should try to separate out the connection properties associated with a URI and the mediators knowledge. So in other words lets try to configure the mediator with the URI and the SynapseEnv with the certs/uids/proxies, etc.

Paul

On 2/28/06, Saminda Abeyruwan <[EMAIL PROTECTED]> wrote:
Hi Devs,

I have written a document on "how to configure mediators get resources via SSL connection".  This will address how to acquire resources from Axis2 repository which is deployed on Tomcat.

Thank you

Saminda


On 2/28/06, Saminda Abeyruwan < [EMAIL PROTECTED]> wrote:
On 2/27/06, Soumadeep <[EMAIL PROTECTED]> wrote:
Hi all,

To fetch external resources using Axis2SynapseEnvironment's get(String url)
wouldn't suffice I think. For secured resources we might have to send the 1)
username/password http token or 2)WS Sec token or maybe 3) certificates or
4) we might also have to deal with enc/decryption.

+1.  The  underline  transport mechanism for SynapesEnvironment.get(String) uses HttpClient from commons-httpclient and it provides full support for HTTP over SSL [1]. Thus, with minimum effort we can integrate it here. But to introduce authentication details we may need to insert  a bean into SynapseEnvironment.get(String) and we may have to change the signature as SynapseEnvironment.get(String url, Object authentication). This will allow to get authentication details from run time.

More importantly, there might be a situation where the resource could be
located in LDAP,Database or a file System.

Yes.  We need to figure this out. IMHO this is can be considered as multiple issues.

How do we handle situations where a parameter could be required by the
resource server apart from what I have mentioned above? (HTTP GET maybe the
only way out) but then there should be a way to configure what type of
resource server it is and what details are required.

REST like invocation is the most simple yet the powerful way of  getting resources out a  repository.  So the  current implementation of SynapseEnviroment.get(String) would defiantly do that. We can integrate a very powerful lookup for this resources, if we uses Axis2's ServiceClient (Once Axis2-0.95 releases) REST invocation mechanism. But to  integrate this, we need to populate a Object and fill the right information.

IMHO, i guess commons-httpclient addresses most of  the problems  with regular and ssl connection.

Thank you

Saminda

Resources: [1]. http://jakarta.apache.org/commons/httpclient/sslguide.html




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com



--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

Reply via email to