@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

Reply via email to