@Indunil 1. Without the for loop can we just do sendToClient("signupClaims", claimProfile.claims); will that work? 2. Why do need to send all the claims to front-end JS anyway? aren't those already used in HBS?
@Sajith 1. I keep seeing people trying to manually convert java to json. Can we give a better option? maybe have callOSGiServiceAsJson? On Fri, Jan 20, 2017 at 7:17 AM, Indunil Upeksha Rathnayake < indu...@wso2.com> wrote: > Hi, > > Thanks all for your responses. Yes in my case it doesn't need to convert > boolean to string. But if needed, as sajith mentioned, seems like have to > import that class in the script with Java.type Nashorn extension. > > Thanks and Regards > > On Fri, Jan 20, 2017 at 10:52 AM, SajithAR Ariyarathna <sajit...@wso2.com> > wrote: > >> Hi Indunil, >> >> Seems like the problem is in your script. >> >> Boolean.toString(claimForProfile[i].getRequired()) >> >> I believe your intention here is to call java.lang.Boolean#toString(boolean >> b) method, right? But Nashorn doesn't know that, because you haven't >> imported java.lang.Boolean class in your script. In order to use a Java >> class in your script, first you have to import that class in your script >> with Java.type Nashorn extension [1]. (see 'call Java class' sample in >> the features-app sample) >> Since you haven't imported java.lang.Boolean class, Nashorn thinks >> Boolean.toString is a JS function, thus it is serialized to "function >> Boolean() { [native code] }". >> >> Anyway, You don't need to convert boolean values to strings here. So >> let's remove Boolean.toString >> >> [1] https://docs.oracle.com/javase/8/docs/technotes/guides/ >> scripting/prog_guide/javascript.html#A1147187 >> >> Thanks. >> >> On Fri, Jan 20, 2017 at 10:13 AM, SajithAR Ariyarathna <sajit...@wso2.com >> > wrote: >> >>> Hi Indunil, >>>> >>>> claimProfileMap["required"] = Boolean.toString(claimForProfile[i]. >>>> getRequired()); >>>> >>> I don't see a particular reason to convert boolean to string. You can >>> just use the boolean value directly. >>> >>> Anyhow, we will fix this. >>> Thanks. >>> >>> On Fri, Jan 20, 2017 at 7:47 AM, Indunil Upeksha Rathnayake < >>> indu...@wso2.com> wrote: >>> >>>> Hi, >>>> >>>> The code segment I have used as follows. >>>> >>>> function getProfile() { >>>> var claimProfile; >>>> try { >>>> // Get Claim Profile >>>> claimProfile = >>>> callOSGiService("org.wso2.is.portal.user.client.api.ProfileMgtClientService", >>>> "getProfile", ["self-signUp"]); >>>> } catch(e) { >>>> return {errorMessage: "Failed to retrieve the claim profile."}; >>>> } >>>> var claimForProfile = claimProfile.claims; >>>> >>>> var claimProfileArray = []; >>>> >>>> for (var i = 0; i < claimForProfile.length; i++) { >>>> var claimProfileMap = {}; >>>> claimProfileMap["displayName"] = >>>> claimForProfile[i].getDisplayName(); >>>> claimProfileMap["claimURI"] = claimForProfile[i].getClaimURI(); >>>> if (claimForProfile[i].getDefaultValue()) { >>>> claimProfileMap["defaultValue"] = >>>> claimForProfile[i].getDefaultValue(); >>>> } >>>> claimProfileMap["claimLabel"] = >>>> claimForProfile[i].getClaimURI().replace("http://wso2.org/claims/", ""); >>>> claimProfileMap["required"] = >>>> Boolean.toString(claimForProfile[i].getRequired()); >>>> claimProfileMap["regex"] = claimForProfile[i].getRegex(); >>>> claimProfileMap["readonly"] = >>>> Boolean.toString(claimForProfile[i].getReadonly()); >>>> claimProfileMap["dataType"] = claimForProfile[i].getDataType(); >>>> claimProfileArray[i] = claimProfileMap; >>>> } >>>> sendToClient("signupClaims", claimProfileArray); >>>> return { >>>> "signupClaims": claimProfileArray >>>> }; >>>> } >>>> >>>> >>>> Thanks and Regards >>>> >>>> >>>> On Thu, Jan 19, 2017 at 10:03 PM, Manuranga Perera <m...@wso2.com> >>>> wrote: >>>> >>>>> when sending boolean value as a string(converting boolean to string >>>>>> using "Boolean.toString()" >>>>> >>>>> Not very clear what you are saying here. Can you please show the code. >>>>> >>>>> On Thu, Jan 19, 2017 at 4:23 PM, Danushka Fernando <danush...@wso2.com >>>>> > wrote: >>>>> >>>>>> HI >>>>>> Seems its calling [1] and [2] is something its getting called. When >>>>>> we have a boolean as a string probably that happens. But not sure that's >>>>>> expected. >>>>>> >>>>>> [1] https://github.com/google/gson/blob/0636635cbffa08157bdb >>>>>> d558b1212e4d806474eb/gson/src/main/java/com/google/gson/Gson >>>>>> .java#L580 >>>>>> [2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/ >>>>>> Reference/Global_Objects/Object/toSource >>>>>> >>>>>> Thanks & Regards >>>>>> Danushka Fernando >>>>>> Senior Software Engineer >>>>>> WSO2 inc. http://wso2.com/ >>>>>> Mobile : +94716332729 <+94%2071%20633%202729> >>>>>> >>>>>> On Thu, Jan 19, 2017 at 7:43 PM, Indunil Upeksha Rathnayake < >>>>>> indu...@wso2.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> It's returning {"signupClaims": claimProfileArray} from the >>>>>>> onRequest() method. claimProfileArray is an array with several map >>>>>>> objects. I have just tested and found that this error comes when sending >>>>>>> boolean value as a string(converting boolean to string using >>>>>>> "Boolean.toString()"). >>>>>>> As an example like this. >>>>>>> [{"claimURI":"http://wso2.org/claims/givenname","required":"true"}, >>>>>>> {"claimURI":"http://wso2.org/claims/lastname","required":"true"}]. >>>>>>> >>>>>>> But passing as a boolean value it works. Is that an acceptable >>>>>>> behavior? >>>>>>> >>>>>>> Thanks and Regards >>>>>>> >>>>>>> On Thu, Jan 19, 2017 at 7:08 PM, Kishanthan Thangarajah < >>>>>>> kishant...@wso2.com> wrote: >>>>>>> >>>>>>>> We are using gson to serialize the json sent to client [1]. But we >>>>>>>> need the sample data used here to test what could be the issue. >>>>>>>> >>>>>>>> [1] https://github.com/wso2/carbon-uuf/blob/master/component >>>>>>>> s/uuf-renderablecreator-hbs/src/main/java/org/wso2/carbon/uu >>>>>>>> f/renderablecreator/hbs/impl/js/JsFunctionsImpl.java#L152 >>>>>>>> >>>>>>>> On Thu, Jan 19, 2017 at 7:04 PM, Manuranga Perera <m...@wso2.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I think it's a java object. I think we need to use something like >>>>>>>>> gson here >>>>>>>>> >>>>>>>>> On Thu, Jan 19, 2017 at 1:30 PM, Kishanthan Thangarajah < >>>>>>>>> kishant...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> Can we have the json object to investigate this? >>>>>>>>>> >>>>>>>>>> On Thu, Jan 19, 2017 at 6:22 PM, SajithAR Ariyarathna < >>>>>>>>>> sajit...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> +{UUF Team] >>>>>>>>>>> >>>>>>>>>>> On Thu, Jan 19, 2017 at 5:34 PM, Indunil Upeksha Rathnayake < >>>>>>>>>>> indu...@wso2.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> Having some problem when using sendToClient() method in the UUF >>>>>>>>>>>> Server Side JS API. I am trying to send an array with a set of map >>>>>>>>>>>> elements >>>>>>>>>>>> as in [1] including some boolean values. When we are sending this >>>>>>>>>>>> value to >>>>>>>>>>>> client side using the sendToClient(), it's injecting the >>>>>>>>>>>> variables to the "js" placeholder in the layout. But when >>>>>>>>>>>> evaluating the >>>>>>>>>>>> variable, boolean values are not stored as it is but as follows. >>>>>>>>>>>> *function Boolean() { [native code] }* >>>>>>>>>>>> >>>>>>>>>>>> Seems like in there, it's getting the value of >>>>>>>>>>>> "booleanVaribale.constructor". I'm using uuf version "1.0.0-m9". >>>>>>>>>>>> Is this expectable or an issue? >>>>>>>>>>>> >>>>>>>>>>>> [1] [ {"claimURI":"http://wso2.org/claims/givenname >>>>>>>>>>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.org%2Fclaims%2Fgivenname&sa=D&sntz=1&usg=AFQjCNHhpHtMY1eVUFZfM8A2n2iOnajUvg> >>>>>>>>>>>> ","required":"function Boolean() { [native code] }"}, >>>>>>>>>>>> {"claimURI":"http://wso2.org/claims/lastname >>>>>>>>>>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.org%2Fclaims%2Flastname&sa=D&sntz=1&usg=AFQjCNGDQuIZMXiN8WMbgitjy9uIJ_jKDw> >>>>>>>>>>>> ","required":"function Boolean() { [native code] }"}] >>>>>>>>>>>> >>>>>>>>>>>> Thanks and Regards >>>>>>>>>>>> -- >>>>>>>>>>>> Indunil Upeksha Rathnayake >>>>>>>>>>>> Software Engineer | WSO2 Inc >>>>>>>>>>>> Email indu...@wso2.com >>>>>>>>>>>> Mobile 0772182255 >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Sajith Janaprasad Ariyarathna >>>>>>>>>>> Software Engineer; WSO2, Inc.; http://wso2.com/ >>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Kishanthan Thangarajah* >>>>>>>>>> Technical Lead, >>>>>>>>>> Platform Technologies Team, >>>>>>>>>> WSO2, Inc. >>>>>>>>>> lean.enterprise.middleware >>>>>>>>>> >>>>>>>>>> Mobile - +94773426635 <+94%2077%20342%206635> >>>>>>>>>> Blog - *http://kishanthan.wordpress.com >>>>>>>>>> <http://kishanthan.wordpress.com>* >>>>>>>>>> Twitter - *http://twitter.com/kishanthan >>>>>>>>>> <http://twitter.com/kishanthan>* >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Dev mailing list >>>>>>>>>> Dev@wso2.org >>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> With regards, >>>>>>>>> *Manu*ranga Perera. >>>>>>>>> >>>>>>>>> phone : 071 7 70 20 50 >>>>>>>>> mail : m...@wso2.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Kishanthan Thangarajah* >>>>>>>> Technical Lead, >>>>>>>> Platform Technologies Team, >>>>>>>> WSO2, Inc. >>>>>>>> lean.enterprise.middleware >>>>>>>> >>>>>>>> Mobile - +94773426635 <+94%2077%20342%206635> >>>>>>>> Blog - *http://kishanthan.wordpress.com >>>>>>>> <http://kishanthan.wordpress.com>* >>>>>>>> Twitter - *http://twitter.com/kishanthan >>>>>>>> <http://twitter.com/kishanthan>* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Indunil Upeksha Rathnayake >>>>>>> Software Engineer | WSO2 Inc >>>>>>> Email indu...@wso2.com >>>>>>> Mobile 0772182255 >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Dev mailing list >>>>>> Dev@wso2.org >>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> With regards, >>>>> *Manu*ranga Perera. >>>>> >>>>> phone : 071 7 70 20 50 >>>>> mail : m...@wso2.com >>>>> >>>> >>>> >>>> >>>> -- >>>> Indunil Upeksha Rathnayake >>>> Software Engineer | WSO2 Inc >>>> Email indu...@wso2.com >>>> Mobile 0772182255 >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> Sajith Janaprasad Ariyarathna >>> Software Engineer; WSO2, Inc.; http://wso2.com/ >>> <https://wso2.com/signature> >>> >> >> >> >> -- >> Sajith Janaprasad Ariyarathna >> Software Engineer; WSO2, Inc.; http://wso2.com/ >> <https://wso2.com/signature> >> > > > > -- > Indunil Upeksha Rathnayake > Software Engineer | WSO2 Inc > Email indu...@wso2.com > Mobile 0772182255 > -- With regards, *Manu*ranga Perera. phone : 071 7 70 20 50 mail : m...@wso2.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev