Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-20 Thread Sanjeewa Malalgoda
On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana
la...@wso2.comwrote:

 Hi,

 I tried this with ESB sample 800 in ESB 4.6.0.

 Modified the API as follows,

 api xmlns=http://ws.apache.org/ns/synapse; name=StockQuoteAPI
 context=/stockquote
resource methods=GET uri-template=*/view/{symbol}?**
   inSequence
  payloadFactory
 format
m0:getQuote xmlns:m0=http://services.samples;
   m0:request
  m0:symbol$1/m0:symbol
   /m0:request
/m0:getQuote
 /format
 args
arg expression=get-property('uri.var.symbol')/
 /args
  /payloadFactory
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService; format=soap11/
 /endpoint
  /send
   /inSequence
   outSequence
  send/
   /outSequence
/resource
resource methods=POST
   inSequence
  property name=FORCE_SC_ACCEPTED value=true scope=axis2/
  property name=OUT_ONLY value=true/
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService; format=soap11/
 /endpoint
  /send
   /inSequence
/resource
 /api

 When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2
  --- no reponse -- No errors at ESB side

This is the expected behavior. You need to understand this syntax first.
Here by *?* *we define that we can have anything after ? symbol. But up to
'?' symbol things should map exactly. Simply you need to aware that * means
you can have anything after that point and you must allways define it at
the end of resource definition.

 When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2?*
 -- gives a response -- works fine

 So it seems ?* is not detected as wildcard on query parameters, but part
 of URI-template.

 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 10:50 PM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana la...@wso2.com
  wrote:


 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda 
 sanje...@wso2.comwrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda sanje...@wso2.com
  wrote:

 First for this type of definitions you need to use uri-template
 instead of url-mapping. With uri-templates only you will be able to 
 define
 resource variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


 Thanks for the reply.
 So as I understood we will be able to get name and id values as '
 get-property('uri.var.name')'. But is there way to read in 'test' as
 a value as well.

 AFAIK we cannot get it. Workaround would be get To property and  do
 some string manipulation to extract it.


 eg: /sanjeewa/user,190/test?year=2012
  /sanjeewa/user,190/prod?year=2012
  /sanjeewa/user,190/pre-prod?year=2012 so we need to read the
 path whether it's test/prod pr pre-prod as well.

 I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* .
 But this did not work and is expecting URL to be
 /sanjeewa/user,190/test?*.

 I didn't get your question. Can you point me uri template created and
 request sent. Did you see any error like resource not matching or something
 similar.

  URI-Template :  /sanjeewa/{name,id}/{environment}?*
 matches :  /sanjeewa/user,190/test?*

 but not matching to : /sanjeewa/user,190/test?arg1=value1
 I was just checking whether the wildcard is effective and it is not.

 Thanks for the workaround.

 I just added following to uri template test cases and it worked for me.
 So it should work IMO. If not that is bug and we might need to fix this.

 template = new URITemplate(/sanjeewa/{name,id}/{test}?*);
 var.put(test,tester);
 var.put(name, user);
 var.put(id, 190);
 assertTrue(template.matches(/sanjeewa/user,190/tester?test=12,
 var));

 Thanks,
 sanjeewa.




 Thanks,
 sanjeewa.

 

Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-20 Thread Pushpalanka Jayawardhana
Hi,

Pushpalanka.
-- 
Pushpalanka Jayawardhana, B.Sc.(Hons).
Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
Mobile: +94779716248
Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



On Thu, Mar 20, 2014 at 1:00 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana la...@wso2.com
  wrote:

 Hi,

 I tried this with ESB sample 800 in ESB 4.6.0.

 Modified the API as follows,

 api xmlns=http://ws.apache.org/ns/synapse; name=StockQuoteAPI
 context=/stockquote
resource methods=GET uri-template=*/view/{symbol}?**
   inSequence
  payloadFactory
 format
m0:getQuote xmlns:m0=http://services.samples;
   m0:request
  m0:symbol$1/m0:symbol
   /m0:request
/m0:getQuote
 /format
 args
arg expression=get-property('uri.var.symbol')/
 /args
  /payloadFactory
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService; format=soap11/
 /endpoint
  /send
   /inSequence
   outSequence
  send/
   /outSequence
/resource
resource methods=POST
   inSequence
  property name=FORCE_SC_ACCEPTED value=true scope=axis2/
  property name=OUT_ONLY value=true/
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService; format=soap11/
 /endpoint
  /send
   /inSequence
/resource
 /api

 When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2
  --- no reponse -- No errors at ESB side

 This is the expected behavior. You need to understand this syntax first.
 Here by *?* *we define that we can have anything after ? symbol. But up
 to '?' symbol things should map exactly. Simply you need to aware that *
 means you can have anything after that point and you must allways define it
 at the end of resource definition.


Thanks. My bad I didn't put the URLs that are not working correctly.

curl -v http://127.0.0.1:8280/stockquote/view/WSO2?   -- not working
curl -v http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka--
not working

Then if I try changing the URI-template in ESB as 'uri-template=
*/view/{symbol}**'
This time it only works if the URL matches like -- /stockquote/view/WSO2*


These does not work :

http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka

http://127.0.0.1:8280/stockquote/view/WSO2



So I think, with the way I define the template, it is not identifying the
'*' as a wild card in resource definition. Please correct me if I am wrong.




  When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2?*
 -- gives a response -- works fine

 So it seems ?* is not detected as wildcard on query parameters, but part
 of URI-template.

 Thanks,
 Pushpalanka.
 --
  Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 10:50 PM, Sanjeewa Malalgoda 
 sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:


 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda 
 sanje...@wso2.comwrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda 
 sanje...@wso2.com wrote:

 First for this type of definitions you need to use uri-template
 instead of url-mapping. With uri-templates only you will be able to 
 define
 resource variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


 Thanks for the reply.
 So as I understood we will be able to get name and id values as '
 get-property('uri.var.name')'. But is there way to read in 'test' as
 a value as well.

 AFAIK we cannot get it. Workaround would be get To property and  do
 some string manipulation to extract it.


 eg: /sanjeewa/user,190/test?year=2012
  /sanjeewa/user,190/prod?year=2012
  /sanjeewa/user,190/pre-prod?year=2012 so we need to read
 the path whether it's test/prod pr pre-prod as well.

 

Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-20 Thread Pushpalanka Jayawardhana
Pushpalanka.
-- 
Pushpalanka Jayawardhana, B.Sc.(Hons).
Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
Mobile: +94779716248
Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



On Thu, Mar 20, 2014 at 10:23 AM, Pushpalanka Jayawardhana
la...@wso2.comwrote:

 Hi,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Thu, Mar 20, 2014 at 1:00 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Hi,

 I tried this with ESB sample 800 in ESB 4.6.0.

 Modified the API as follows,

 api xmlns=http://ws.apache.org/ns/synapse; name=StockQuoteAPI
 context=/stockquote
resource methods=GET uri-template=*/view/{symbol}?**
   inSequence
  payloadFactory
 format
m0:getQuote xmlns:m0=http://services.samples;
   m0:request
  m0:symbol$1/m0:symbol
   /m0:request
/m0:getQuote
 /format
 args
arg expression=get-property('uri.var.symbol')/
 /args
  /payloadFactory
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService;
 format=soap11/
 /endpoint
  /send
   /inSequence
   outSequence
  send/
   /outSequence
/resource
resource methods=POST
   inSequence
  property name=FORCE_SC_ACCEPTED value=true scope=axis2/
  property name=OUT_ONLY value=true/
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService;
 format=soap11/
 /endpoint
  /send
   /inSequence
/resource
 /api

 When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2
  --- no reponse -- No errors at ESB side

 This is the expected behavior. You need to understand this syntax first.
 Here by *?* *we define that we can have anything after ? symbol. But up
 to '?' symbol things should map exactly. Simply you need to aware that *
 means you can have anything after that point and you must allways define it
 at the end of resource definition.


 Thanks. My bad I didn't put the URLs that are not working correctly.

 curl -v http://127.0.0.1:8280/stockquote/view/WSO2?   -- not working
 curl -v http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka--
 not working

 Then if I try changing the URI-template in ESB as 'uri-template=
 */view/{symbol}**'
 This time it only works if the URL matches like -- /stockquote/view/WSO2*


 These does not work :

 http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka

 http://127.0.0.1:8280/stockquote/view/WSO2



 So I think, with the way I define the template, it is not identifying the
 '*' as a wild card in resource definition. Please correct me if I am wrong.


Could find that though this is not working at 4.6.0 version, it works fine
with 4.8.0 version.
I will go with a workaround as it seems this is not supported in the used
version of ESB.

Thanks a lot for the thoughts..





   When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2?*  -- 
 gives a response -- works fine

 So it seems ?* is not detected as wildcard on query parameters, but part
 of URI-template.

 Thanks,
 Pushpalanka.
 --
  Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 10:50 PM, Sanjeewa Malalgoda 
 sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:


 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda sanje...@wso2.com
  wrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda 
 sanje...@wso2.com wrote:

 First for this type of definitions you need to use uri-template
 instead of url-mapping. With uri-templates only you will be able to 
 define
 resource variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches 

Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-20 Thread Sanjeewa Malalgoda
I was under the impression that you are using latest uri-template version
(1.6.3 or above). Actually * support and query parameter support was not
there in in 1.6.2 and we introduced it later. Referring this jira[1]

Thanks,
sanjeewa.

[1]https://wso2.org/jira/browse/APIMANAGER-903

On Fri, Mar 21, 2014 at 12:05 AM, Pushpalanka Jayawardhana
la...@wso2.comwrote:



 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Thu, Mar 20, 2014 at 10:23 AM, Pushpalanka Jayawardhana la...@wso2.com
  wrote:

 Hi,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Thu, Mar 20, 2014 at 1:00 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Hi,

 I tried this with ESB sample 800 in ESB 4.6.0.

 Modified the API as follows,

 api xmlns=http://ws.apache.org/ns/synapse; name=StockQuoteAPI
 context=/stockquote
resource methods=GET uri-template=*/view/{symbol}?**
   inSequence
  payloadFactory
 format
m0:getQuote xmlns:m0=http://services.samples;
   m0:request
  m0:symbol$1/m0:symbol
   /m0:request
/m0:getQuote
 /format
 args
arg expression=get-property('uri.var.symbol')/
 /args
  /payloadFactory
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService;
 format=soap11/
 /endpoint
  /send
   /inSequence
   outSequence
  send/
   /outSequence
/resource
resource methods=POST
   inSequence
  property name=FORCE_SC_ACCEPTED value=true scope=axis2/
  property name=OUT_ONLY value=true/
  send
 endpoint
address uri=
 http://localhost:9000/services/SimpleStockQuoteService;
 format=soap11/
 /endpoint
  /send
   /inSequence
/resource
 /api

 When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2
--- no reponse -- No errors at ESB side

 This is the expected behavior. You need to understand this syntax first.
 Here by *?* *we define that we can have anything after ? symbol. But up
 to '?' symbol things should map exactly. Simply you need to aware that *
 means you can have anything after that point and you must allways define it
 at the end of resource definition.


 Thanks. My bad I didn't put the URLs that are not working correctly.

 curl -v http://127.0.0.1:8280/stockquote/view/WSO2?   -- not working
 curl -v http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka--
 not working

 Then if I try changing the URI-template in ESB as 'uri-template=
 */view/{symbol}**'
 This time it only works if the URL matches like
 -- /stockquote/view/WSO2*

 These does not work :

 http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka

 http://127.0.0.1:8280/stockquote/view/WSO2



 So I think, with the way I define the template, it is not identifying the
 '*' as a wild card in resource definition. Please correct me if I am wrong.


 Could find that though this is not working at 4.6.0 version, it works fine
 with 4.8.0 version.
 I will go with a workaround as it seems this is not supported in the used
 version of ESB.

 Thanks a lot for the thoughts..





   When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2?*  
 -- gives a response -- works fine

 So it seems ?* is not detected as wildcard on query parameters, but
 part of URI-template.

 Thanks,
 Pushpalanka.
 --
  Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 10:50 PM, Sanjeewa Malalgoda sanje...@wso2.com
  wrote:




 On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:


 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda 
 sanje...@wso2.com wrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 

Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-19 Thread Sanjeewa Malalgoda
First for this type of definitions you need to use uri-template instead of
url-mapping. With uri-templates only you will be able to define resource
variables as you mentioned. See following examples.

URITemplate /sanjeewa/{name,id}/*
matches /sanjeewa/user,190/test
matches /sanjeewa/user,190/test?year=2012

URITemplate /sanjeewa/~{test}?*
matches /sanjeewa/~tester?test

Thanks,
sanjeewa.


On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana la...@wso2.comwrote:

 Hi,

 We need to read in some parameters from the URL path as well as some
 optional query parameters. (in ESB 4.6.0)

 Have tried few combinations of URL-mapping and URI- templates.
 Is it possible to use something similar to

 resource methods=GET url-mapping=/case/{grade}/{studentId}?*

 This did not work for me.
 Is it possible to achieve this functionality without modifying the URL to
 get everything as query parameters?

 Thanks,
  Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka


 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




-- 

*Sanjeewa Malalgoda*
Senior Software Engineer
WSO2 Inc.
Mobile : +94713068779

 http://sanjeewamalalgoda.blogspot.com/blog
:http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-19 Thread Pushpalanka Jayawardhana
Thanks,

Pushpalanka.
-- 
Pushpalanka Jayawardhana, B.Sc.(Hons).
Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
Mobile: +94779716248
Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:

 First for this type of definitions you need to use uri-template instead of
 url-mapping. With uri-templates only you will be able to define resource
 variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


Thanks for the reply.
So as I understood we will be able to get name and id values as '
get-property('uri.var.name')'. But is there way to read in 'test' as a
value as well.

eg: /sanjeewa/user,190/test?year=2012
 /sanjeewa/user,190/prod?year=2012
 /sanjeewa/user,190/pre-prod?year=2012 so we need to read the path
whether it's test/prod pr pre-prod as well.

I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* . But
this did not work and is expecting URL to be /sanjeewa/user,190/test?*.
Please let me know if I am missing anything.



 URITemplate /sanjeewa/~{test}?*
 matches /sanjeewa/~tester?test

 Thanks,
 sanjeewa.


 On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.comwrote:

 Hi,

 We need to read in some parameters from the URL path as well as some
 optional query parameters. (in ESB 4.6.0)

 Have tried few combinations of URL-mapping and URI- templates.
 Is it possible to use something similar to

 resource methods=GET url-mapping=/case/{grade}/{studentId}?*

 This did not work for me.
 Is it possible to achieve this functionality without modifying the URL to
 get everything as query parameters?

 Thanks,
  Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka


 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/



___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-19 Thread Sanjeewa Malalgoda
On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana la...@wso2.comwrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:

 First for this type of definitions you need to use uri-template instead
 of url-mapping. With uri-templates only you will be able to define resource
 variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


 Thanks for the reply.
 So as I understood we will be able to get name and id values as '
 get-property('uri.var.name')'. But is there way to read in 'test' as a
 value as well.

AFAIK we cannot get it. Workaround would be get To property and  do some
string manipulation to extract it.


 eg: /sanjeewa/user,190/test?year=2012
  /sanjeewa/user,190/prod?year=2012
  /sanjeewa/user,190/pre-prod?year=2012 so we need to read the
 path whether it's test/prod pr pre-prod as well.

 I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* . But
 this did not work and is expecting URL to be /sanjeewa/user,190/test?*.

I didn't get your question. Can you point me uri template created and
request sent. Did you see any error like resource not matching or something
similar.

Thanks,
sanjeewa.

 Please let me know if I am missing anything.



 URITemplate /sanjeewa/~{test}?*
 matches /sanjeewa/~tester?test

 Thanks,
 sanjeewa.


 On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana la...@wso2.com
  wrote:

 Hi,

 We need to read in some parameters from the URL path as well as some
 optional query parameters. (in ESB 4.6.0)

 Have tried few combinations of URL-mapping and URI- templates.
 Is it possible to use something similar to

 resource methods=GET url-mapping=/case/{grade}/{studentId}?*

 This did not work for me.
 Is it possible to achieve this functionality without modifying the URL
 to get everything as query parameters?

 Thanks,
  Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka


 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/






-- 

*Sanjeewa Malalgoda*
Senior Software Engineer
WSO2 Inc.
Mobile : +94713068779

 http://sanjeewamalalgoda.blogspot.com/blog
:http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-19 Thread Pushpalanka Jayawardhana
Thanks,
Pushpalanka.
-- 
Pushpalanka Jayawardhana, B.Sc.(Hons).
Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
Mobile: +94779716248
Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.comwrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:

 First for this type of definitions you need to use uri-template instead
 of url-mapping. With uri-templates only you will be able to define resource
 variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


 Thanks for the reply.
 So as I understood we will be able to get name and id values as '
 get-property('uri.var.name')'. But is there way to read in 'test' as a
 value as well.

 AFAIK we cannot get it. Workaround would be get To property and  do some
 string manipulation to extract it.


 eg: /sanjeewa/user,190/test?year=2012
  /sanjeewa/user,190/prod?year=2012
  /sanjeewa/user,190/pre-prod?year=2012 so we need to read the
 path whether it's test/prod pr pre-prod as well.

 I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* . But
 this did not work and is expecting URL to be /sanjeewa/user,190/test?*.

 I didn't get your question. Can you point me uri template created and
 request sent. Did you see any error like resource not matching or something
 similar.

URI-Template :  /sanjeewa/{name,id}/{environment}?*
matches :  /sanjeewa/user,190/test?*

but not matching to : /sanjeewa/user,190/test?arg1=value1
I was just checking whether the wildcard is effective and it is not.

Thanks for the workaround.



 Thanks,
 sanjeewa.

 Please let me know if I am missing anything.



 URITemplate /sanjeewa/~{test}?*
 matches /sanjeewa/~tester?test

 Thanks,
 sanjeewa.


 On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Hi,

 We need to read in some parameters from the URL path as well as some
 optional query parameters. (in ESB 4.6.0)

 Have tried few combinations of URL-mapping and URI- templates.
 Is it possible to use something similar to

 resource methods=GET url-mapping=/case/{grade}/{studentId}?*

 This did not work for me.
 Is it possible to achieve this functionality without modifying the URL
 to get everything as query parameters?

 Thanks,
  Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka


 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/






 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/



___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] Use of URL template in ESB with a wildcard for query parameters

2014-03-19 Thread Sanjeewa Malalgoda
On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana la...@wso2.comwrote:


 Thanks,
 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote:




 On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana la...@wso2.com
  wrote:

 Thanks,

 Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka



 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda 
 sanje...@wso2.comwrote:

 First for this type of definitions you need to use uri-template instead
 of url-mapping. With uri-templates only you will be able to define resource
 variables as you mentioned. See following examples.

 URITemplate /sanjeewa/{name,id}/*
 matches /sanjeewa/user,190/test
 matches /sanjeewa/user,190/test?year=2012


 Thanks for the reply.
 So as I understood we will be able to get name and id values as '
 get-property('uri.var.name')'. But is there way to read in 'test' as a
 value as well.

 AFAIK we cannot get it. Workaround would be get To property and  do some
 string manipulation to extract it.


 eg: /sanjeewa/user,190/test?year=2012
  /sanjeewa/user,190/prod?year=2012
  /sanjeewa/user,190/pre-prod?year=2012 so we need to read the
 path whether it's test/prod pr pre-prod as well.

 I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* . But
 this did not work and is expecting URL to be /sanjeewa/user,190/test?*.

 I didn't get your question. Can you point me uri template created and
 request sent. Did you see any error like resource not matching or something
 similar.

 URI-Template :  /sanjeewa/{name,id}/{environment}?*
 matches :  /sanjeewa/user,190/test?*

 but not matching to : /sanjeewa/user,190/test?arg1=value1
 I was just checking whether the wildcard is effective and it is not.

 Thanks for the workaround.

I just added following to uri template test cases and it worked for me. So
it should work IMO. If not that is bug and we might need to fix this.

template = new URITemplate(/sanjeewa/{name,id}/{test}?*);
var.put(test,tester);
var.put(name, user);
var.put(id, 190);
assertTrue(template.matches(/sanjeewa/user,190/tester?test=12,
var));

Thanks,
sanjeewa.




 Thanks,
 sanjeewa.

 Please let me know if I am missing anything.



 URITemplate /sanjeewa/~{test}?*
 matches /sanjeewa/~tester?test

 Thanks,
 sanjeewa.


 On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana 
 la...@wso2.com wrote:

 Hi,

 We need to read in some parameters from the URL path as well as some
 optional query parameters. (in ESB 4.6.0)

 Have tried few combinations of URL-mapping and URI- templates.
 Is it possible to use something similar to

 resource methods=GET url-mapping=/case/{grade}/{studentId}?*

 This did not work for me.
 Is it possible to achieve this functionality without modifying the URL
 to get everything as query parameters?

 Thanks,
  Pushpalanka.
 --
 Pushpalanka Jayawardhana, B.Sc.(Hons).
 Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
 Mobile: +94779716248
 Blog: pushpalankajaya.blogspot.com/ | LinkedIn:
 lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka


 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/






 --

 *Sanjeewa Malalgoda*
 Senior Software Engineer
 WSO2 Inc.
 Mobile : +94713068779

  http://sanjeewamalalgoda.blogspot.com/blog
 :http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/






-- 

*Sanjeewa Malalgoda*
Senior Software Engineer
WSO2 Inc.
Mobile : +94713068779

 http://sanjeewamalalgoda.blogspot.com/blog
:http://sanjeewamalalgoda.blogspot.com/http://sanjeewamalalgoda.blogspot.com/
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev