Hi Carlos, I will give it some thought. What you are proposing makes sense
in terms of helping people understand. But the warning is not actually
being generated by Crux, but by a reflection utility method that Crux is
using.


On Wed, Jul 29, 2020 at 7:45 PM Carlos Rovira <[email protected]>
wrote:

> Hi Greg,
>
> I prefer to maintain and maybe could be better to add some docs to Crux
> with your explanation and a plus could be to add a link to the docs in the
> warning. So people getting it see the link and could jump to the web to
> read what it implies. what do you think?
>
>
>
> El mié., 29 jul. 2020 a las 1:01, Greg Dove (<[email protected]>)
> escribió:
>
>>
>>
>> The 'WARNING' is just a warning. It will not appear in a release build.
>> It appears in this case of the HTTPService class because
>> js-default-initializers is off by default in the framework builds.
>> Ignoring the warning in most cases it will probably be ok (particularly
>> in this case, where there are no actual static constants on the reflection
>> target). But it could result in problems in some rare cases, and the
>> warning would provide a helpful clue for those situations.
>> If someone did something like MyClass["MY_FAKE_CONSTANT"] = 'fake' it
>> would incorrectly collect 'MY_FAKE_CONSTANT' as a constant during the Crux
>> reflection checks for a class that did not have
>> js-default-initializers=true when it was compiled. That seems quite rare,
>> so we could perhaps remove this warning.
>>
>> What does everyone think?
>>
>>
>>
>>
>>
>>
>> On Wed, Jul 29, 2020 at 8:02 AM Carlos Rovira <[email protected]>
>> wrote:
>>
>>> Hi Harbs,
>>>
>>> I think @Greg Dove <[email protected]> could better respond to it. I
>>> think all objects injected by Crux need to be compiled with that flag to
>>> true to remove that warning.
>>>
>>> El mar., 28 jul. 2020 a las 21:56, Harbs (<[email protected]>)
>>> escribió:
>>>
>>>> Right. But what values need to be initialized?
>>>>
>>>> On Jul 28, 2020, at 2:29 PM, Carlos Rovira <[email protected]>
>>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> -js-default-initializers=true is required by Crux, but MXRoyale is not
>>>> compiled with it
>>>>
>>>> El mar., 28 jul. 2020 a las 11:56, Harbs (<[email protected]>)
>>>> escribió:
>>>>
>>>>> Which initializer is needed?
>>>>>
>>>>> On Jul 28, 2020, at 12:29 PM, Carlos Rovira <[email protected]>
>>>>> wrote:
>>>>>
>>>>> Hi Piotr,
>>>>>
>>>>> seems Joanne has problem in part due to MXRoyale not compiled with
>>>>>
>>>>> -js-default-initializers=true
>>>>>
>>>>> (getStaticConstantsByConvention :: the reflection target
>>>>> mx.rpc.http.mxml.HTTPService was not Compiled with default
>>>>> initializers enabled)
>>>>>
>>>>> Don't know if it is possible to add that to MXRoyale. What do you
>>>>> think @Harbs <[email protected]> , @Yishay Weiss
>>>>> <[email protected]>  and others?
>>>>>
>>>>> @Joanne, if you are building from sources, can you try to add that
>>>>> config to MRoyale library?
>>>>>
>>>>> thanks
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> El mar., 28 jul. 2020 a las 7:51, Piotr Zarzycki (<
>>>>> [email protected]>) escribió:
>>>>>
>>>>>> Hi Joanne,
>>>>>>
>>>>>> Here is how we are sending POST with some parameters. [1] In that
>>>>>> case parameter one parameter called "dominoXML"
>>>>>>
>>>>>> I hope it helps.
>>>>>>
>>>>>> [1] https://paste.apache.org/x22su
>>>>>>
>>>>>> Thanks,
>>>>>> Piotr
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 28, 2020, 7:28 AM SENEQUE CRAIG THIERRY <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Carlos,
>>>>>>>
>>>>>>> I added the optional compiler parameters:
>>>>>>>
>>>>>>> -js-default-initializers=true
>>>>>>> -js-dynamic-access-unknown-members=true
>>>>>>>
>>>>>>> But am still having the warning in console:
>>>>>>> getStaticConstantsByConvention.js:52 [WARNING]
>>>>>>> getStaticConstantsByConvention :: the reflection target
>>>>>>> mx.rpc.http.mxml.HTTPService was not Compiled with default
>>>>>>> initializers enabled
>>>>>>>
>>>>>>> And also my POST param is still blank on server request...
>>>>>>> When using same request but in flex3 (by the way I am
>>>>>>> re-writing the client side of an existing application
>>>>>>> developed with flex and actionscript - with apache royale)
>>>>>>> and I would like to re-use the existing server functions
>>>>>>> (which is in PHP) - when the same request is called from
>>>>>>> old flex application - the POST params are present... But
>>>>>>> when called using HTTPService from apache royale - it is
>>>>>>> blank :(
>>>>>>>
>>>>>>> Do you have an example using HTTPService with POST
>>>>>>> parameters that work ?
>>>>>>>
>>>>>>> Thanks & Regards
>>>>>>> Joanne
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, 24 Jul 2020 10:20:28 +0200
>>>>>>>   Carlos Rovira <[email protected]> wrote:
>>>>>>> > Hi Joanne,
>>>>>>> >
>>>>>>> > "getStaticConstantsByConvention" problem use to be
>>>>>>> >solved using the
>>>>>>> > optional compilation parameter:
>>>>>>> >*-js-default-initializers=true*
>>>>>>> >
>>>>>>> > (See this link:
>>>>>>> >
>>>>>>> https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#default-initializers
>>>>>>> > )
>>>>>>> >
>>>>>>> > In Royale by default the variables are not initialized
>>>>>>> >unlike in Flash /
>>>>>>> >Flex.
>>>>>>> > Crux needs for some things that these variables are
>>>>>>> >initialized.
>>>>>>> >
>>>>>>> > Also maybe you need to add
>>>>>>> >-js-dynamic-access-unknown-members=true
>>>>>>> > (
>>>>>>> >
>>>>>>> https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#dynamic-access-unknown-members
>>>>>>> > )
>>>>>>> > in case you are adding dynamic properties to plain
>>>>>>> >objects
>>>>>>> >
>>>>>>> > HTH
>>>>>>> >
>>>>>>> > Carlos
>>>>>>> >
>>>>>>> > El vie., 24 jul. 2020 a las 10:05, Joanne Seneque
>>>>>>> >(<[email protected]>)
>>>>>>> > escribió:
>>>>>>> >
>>>>>>> >> Hi Carlos,
>>>>>>> >> Thanks for the reply, I added traces to the code (client
>>>>>>> >>+ server side)
>>>>>>> >> and was able to debug up to the point where the message
>>>>>>> >>is constructed &
>>>>>>> >> sent to server (in
>>>>>>> >>mx.rpc.http.AbstractOperation.prototype.sendBody )
>>>>>>> >> ----
>>>>>>> >> message.contentType =
>>>>>>> >>"application/x-www-form-urlencoded"
>>>>>>> >> message.method = "POST"
>>>>>>> >> message.body = {loginMode: "1", pwd: "jbggAFxcXFx7",
>>>>>>> >>scope:
>>>>>>> >> "jbggAFdXV1fSpQ9e", username: "jbggAFhYWFgPvC96U1U="}
>>>>>>> >> message.httpHeaders = {}
>>>>>>> >> ----
>>>>>>> >> We can see that the "body" contains the object to be
>>>>>>> >>sent to the PHP
>>>>>>> >> service / request call...
>>>>>>> >> But in my PHP log:
>>>>>>> >>
>>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: request method:
>>>>>>> >>POST
>>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: php input:
>>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: user:
>>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: pwd:
>>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: scope:
>>>>>>> >> 2020-07-24 11:45:05 +04:00 --- error: Login - Scope  is
>>>>>>> >>not valid.
>>>>>>> >> 2020-07-24 11:45:05 +04:00 --- error: Login - Blank user
>>>>>>> >>or password given
>>>>>>> >> ---------------------------
>>>>>>> >>
>>>>>>> >> One thing I saw in the browser console is the following
>>>>>>> >>warning:
>>>>>>> >> [WARNING] getStaticConstantsByConvention :: the
>>>>>>> >>reflection target
>>>>>>> >> mx.rpc.http.mxml.HTTPService was not Compiled with
>>>>>>> >>default initializers
>>>>>>> >> enabled
>>>>>>> >> org.apache.royale.reflection.utils.getStaticConstantsByConvention
>>>>>>> >>@
>>>>>>> >> getStaticConstantsByConvention.js:52
>>>>>>> >>
>>>>>>> org.apache.royale.crux.reflection.TypeDescriptor.fromTypeDefinition
>>>>>>> >>@
>>>>>>> >> TypeDescriptor.js:194
>>>>>>> >> org.apache.royale.crux.reflection.TypeCache.getTypeDescriptor
>>>>>>> >>@
>>>>>>> >> TypeCache.js:64
>>>>>>> >> org.apache.royale.crux.BeanFactory.constructBean @
>>>>>>> >>BeanFactory.js:577
>>>>>>> >> org.apache.royale.crux.BeanProvider.initializeBeans @
>>>>>>> >>BeanProvider.js:79
>>>>>>> >> org.apache.royale.crux.BeanProvider.initialize @
>>>>>>> >>BeanProvider.js:65
>>>>>>> >> org.apache.royale.crux.Crux.constructProviders @
>>>>>>> >>Crux.js:169
>>>>>>> >> org.apache.royale.crux.Crux.init @ Crux.js:145
>>>>>>> >> org.apache.royale.crux.Crux.set__strand @ Crux.js:233
>>>>>>> >> org.apache.royale.core.ElementWrapper.addBead @
>>>>>>> >>ElementWrapper.js:120
>>>>>>> >> org.apache.royale.core.HTMLElementWrapper.addBead @
>>>>>>> >> HTMLElementWrapper.js:50
>>>>>>> >> org.apache.royale.jewel.Application.start @
>>>>>>> >>Application.js:260
>>>>>>> >> (anonymous) @ (index):560
>>>>>>> >>
>>>>>>> >> Could this be linked to my issue (i.e. POST content is
>>>>>>> >>blank on PHP
>>>>>>> >> server) ?
>>>>>>> >>
>>>>>>> >> Thanks & Regards
>>>>>>> >> Joanne
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> On 2020/07/23 07:45:44, Carlos Rovira
>>>>>>> >><[email protected]> wrote:
>>>>>>> >> > Hi Joanne,
>>>>>>> >> >
>>>>>>> >> > Here's a working example that uses mx:HTTPService with
>>>>>>> >>Crux [1], very
>>>>>>> >> > similar to your code.
>>>>>>> >> >
>>>>>>> >> > can't see any issue in your code. Just ensure the
>>>>>>> >>service is responding
>>>>>>> >> > correctly and put some traces in the classes to detect
>>>>>>> >>the point where it
>>>>>>> >> > is failing.
>>>>>>> >> >
>>>>>>> >> > [1]
>>>>>>> >> >
>>>>>>> >>
>>>>>>> https://github.com/codeoscopic/avant2-website/blob/master/avant2-products-companies/src/main/royale/com/codeoscopic/avant/config/Beans.mxml
>>>>>>> >> >
>>>>>>> >> > El jue., 23 jul. 2020 a las 8:48, SENEQUE CRAIG
>>>>>>> >>THIERRY (<
>>>>>>> >> > [email protected]>) escribió:
>>>>>>> >> >
>>>>>>> >> > > Hi, I am using an HTTPService to make a POST request
>>>>>>> >>to a
>>>>>>> >> > > PHP server - the issue I am having is that the POST
>>>>>>> >> > > data/params is not retrieved on the server...
>>>>>>> >> > > Below is my code in delegate file (I followed
>>>>>>> >>examples
>>>>>>> >> > > using 'crux'):
>>>>>>> >> > >
>>>>>>> >> > > Beans.mxml
>>>>>>> >> > >
>>>>>>> >> > > <crux:BeanProvider
>>>>>>> >> > >         xmlns:fx="http://ns.adobe.com/mxml/2009";
>>>>>>> >> > >
>>>>>>> >>        xmlns:crux="library://ns.apache.org/royale/crux"
>>>>>>> >> > >         xmlns:mx="library://ns.apache.org/royale/mx"
>>>>>>> >> > >         xmlns:model="model.*"
>>>>>>> >> > >         xmlns:service="service.*"
>>>>>>> >> > >         xmlns:controller="controller.*">
>>>>>>> >> > >
>>>>>>> >> > >         <!-- services config -->
>>>>>>> >> > >         <mx:HTTPService id="loginService"
>>>>>>> >>showBusyCursor="true"/>
>>>>>>> >> > >
>>>>>>> >> > > LoginDelegate.as
>>>>>>> >> > > package service
>>>>>>> >> > > {
>>>>>>> >> > >         import
>>>>>>> >>org.apache.royale.events.IEventDispatcher;
>>>>>>> >> > >         import mx.rpc.AsyncToken;
>>>>>>> >> > >         import mx.rpc.http.HTTPService;
>>>>>>> >> > >
>>>>>>> >> > >         /**
>>>>>>> >> > >          * @royalesupresspublicvarwarning
>>>>>>> >> > >          */
>>>>>>> >> > >         public class LoginDelegate
>>>>>>> >> > >         {
>>>>>>> >> > >
>>>>>>> >> > >                 [Dispatcher]
>>>>>>> >> > >                 public var
>>>>>>> >>dispatcher:IEventDispatcher;
>>>>>>> >> > >
>>>>>>> >> > >                 [Inject('loginService')]
>>>>>>> >> > >                 public var loginService:HTTPService;
>>>>>>> >> > >
>>>>>>> >> > >                 public function LoginDelegate() {
>>>>>>> >> > >                 }
>>>>>>> >> > >
>>>>>>> >> > >                 public function
>>>>>>> >>login(loginURL:String,
>>>>>>> >> > > params:Object):AsyncToken {
>>>>>>> >> > >                         loginService.method =
>>>>>>> >>"POST";
>>>>>>> >> > >                         loginService.url = loginURL
>>>>>>> >>+ 'login_web'; //
>>>>>>> >> > > "login_URL" is for e.g. http://localhost/mySite/
>>>>>>> >> > >
>>>>>>> >> > >
>>>>>>> >> > >                         return
>>>>>>> >>loginService.send(params); // "params"
>>>>>>> >> is
>>>>>>> >> > > an
>>>>>>> >> > > object as {user: xxx:, pwd: 123}
>>>>>>> >> > >                 }
>>>>>>> >> > >         }
>>>>>>> >> > > }
>>>>>>> >> > >
>>>>>>> >> > > ------------
>>>>>>> >> > >
>>>>>>> >> > > On my PHP server both the "$_POST" and
>>>>>>> >> > > "file_get_contents('php://input')" returns blank...
>>>>>>> >> > >
>>>>>>> >> > > Did I miss something on the HTTPService ? Or is
>>>>>>> >>there
>>>>>>> >> > > another way to pass data through POST request ?
>>>>>>> >> > >
>>>>>>> >> > >
>>>>>>> >> > > Thanks & Regards
>>>>>>> >> > >
>>>>>>> >> > > Joanne
>>>>>>> >> > >
>>>>>>> >> >
>>>>>>> >> >
>>>>>>> >> > --
>>>>>>> >> > Carlos Rovira
>>>>>>> >> > http://about.me/carlosrovira
>>>>>>> >> >
>>>>>>> >>
>>>>>>> >
>>>>>>> >
>>>>>>> > --
>>>>>>> > Carlos Rovira
>>>>>>> > http://about.me/carlosrovira
>>>>>>>
>>>>>>>
>>>>>
>>>>> --
>>>>> Carlos Rovira
>>>>> http://about.me/carlosrovira
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Carlos Rovira
>>>> http://about.me/carlosrovira
>>>>
>>>>
>>>>
>>>
>>> --
>>> Carlos Rovira
>>> http://about.me/carlosrovira
>>>
>>>
>
> --
> Carlos Rovira
> http://about.me/carlosrovira
>
>

Reply via email to