YAC (Yet another contribution): RpcConsole

View: New views
9 Messages — Rating Filter:   Alert me  

YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

as everyone knows by know, I love throwing in new contributions, hoping that
the smart qooxdoo community will polish them afterwards ;-). So, by popular
demand, let me present to you: the RpcConsole contribution:

http://n2.nabble.com/file/n3869256/Bild%2B2.png 

which allows you to test a backend rpc server. It is a very minimal client
for the moment, but more functionality is to come - please let me know what
you would like to see implemented. Of course, you can also look at the code
and tell me what can be improved:

https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/

and most important of all, please test it with your favorite backend - I can
only test the PHP backends.

Cheers,

Christian
--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3869256.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by thron7-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Well done, Christian :). It always takes somebody to break the ice.

> for the moment, but more functionality is to come - please let me know what
> you would like to see implemented.
The one thing that I'd like to request is the ability to serialize the
elements of request-response pairs in a Json structure. You could save
away this data and it would later allow you to compare RPC behaviour,
replay requests and automatically verify them (e.g. in regression
testing), or use the data in mock-up's.

Way to go!
T.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message




thron7-2 wrote:

>
> Well done, Christian :). It always takes somebody to break the ice.
>
>> for the moment, but more functionality is to come - please let me know
>> what
>> you would like to see implemented.
> The one thing that I'd like to request is the ability to serialize the
> elements of request-response pairs in a Json structure. You could save
> away this data and it would later allow you to compare RPC behaviour,
> replay requests and automatically verify them (e.g. in regression
> testing), or use the data in mock-up's.
>
>

Ok, I implemented something along this line, allowing to write tests and
mock requests:

http://n2.nabble.com/file/n3882049/Bild%2B3.png 

The menu with tests that you can see in the screen shot is generated from a
simple json structure in rpcconsole.demo.Application:

   [
      {
        label : "Use RpcPhp trunk server ",
        requestData : {
          url : "../../../../../RpcPhp/trunk/services/index.php"
        }
      },
      {
        label : "Use RpcPhp 1.0.1 server ",
        requestData : {
          url : "../../../../../RpcPhp/1.0.1/services/index.php"
        }
      },        
      {
        label       : "qooxdoo.test.echo - Send a simple 'hello world'
message to be echoed by the server.",
        requestData : {
          service : "qooxdoo.test",
          method : "echo",
          params : ["Hello World!"],
          serverData : {
            authentication : {
              username : "Foo",
              password : "Bar"
            }
          }
        }
      },
     
      /*
       * custom test
       */
      {
        label : "Custom test: Authenticate against qcl backend",
        requestData : {
          url     :
"http://localhost:8080/Bibliograph/bibliograph-2.0/bibliograph/services/server.php",
          service : "bibliograph.controller.Authentication",
          method : "authenticate",
          params : [null]
        },
        callback : function( response ){
          this.getActiveConsole().getRequestModel().setServerData({
            sessionId : response.result.data.sessionId
          });
        }
      },
     
      /*
       * Custom Test: qcl service introspection
       */
      {
        label : "Custom test: qcl service introspection",
        requestData : {
          url     :
"http://localhost:8080/Bibliograph/bibliograph-2.0/bibliograph/services/server.php",
          service : "bibliograph.controller.Authentication",
          method : "listMethods",
          params : []
        },
        callback : function( response ){
          var methods = response.result.data;
          var methodComboBox = this.getActiveConsole()._methodComboBox;
          methodComboBox.removeAll();
          methods.forEach( function(method) {
            methodComboBox.add ( new qx.ui.form.ListItem(method) );
          }, this);
        }
      }      
    ]

As you can see, the last two test data items relate to my own application,
based on the qcl backend and won't work with the vanilla RpcPhp servers in
svn. But they show the possibilities you have to remote control the
RpcConsole. For example, you can update the serverData with data from the
last response, or you can have an introspection request fill the method
combo box with all the available methods of a service. And so on.

As before, let me know what you would like to use this console for. I think
I pretty much implemented all the features I need myself, but I am sure
there is a lot of room for improvement.

Cheers,

Christian


I also support for server data and basic http authentication (although I
haven't tested  basicHttpAuth).

--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3882049.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

thron7-2 wrote:
The one thing that I'd like to request is the ability to serialize the
elements of request-response pairs in a Json structure. You could save
away this data and it would later allow you to compare RPC behaviour,
replay requests and automatically verify them (e.g. in regression
testing), or use the data in mock-up's.
Ok, I think the RpcConsole is almost ready for a beta release. Here is some preliminary information:

https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/readme.txt

I have uploaded a demo here:

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build

and the API Viewer here

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/api

Known issues:

- The current code depends on a patch to qx.io2.ScriptLoader. I have opened this bug:
   http://bugzilla.qooxdoo.org/show_bug.cgi?id=2978

- CrossDomain requests do not work yet.

Please open bugs for any other issues that you might come across. As soon as my ScriptLoader patch has been commited and no major bugs come up, I'll release a 0.1 version. For me, the contribution is feature-complete then, but I invite anyone to improve the code and add features.

Cheers,

Christian

Re: YAC (Yet another contribution): RpcConsole

by Derrell Lipman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Oct 25, 2009 at 09:49, panyasan <info@...> wrote:

Ok, I think the RpcConsole is almost ready for a beta release. Here is some
preliminary information:

https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/readme.txt

I have uploaded a demo here:

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build

Christian, this is cool. Nice job!

I'm trying out your demo. If I select qooxdoo.test.echo it works correctly, but if I then change the parameter data and push Send, it does not appear to issue another echo request. Isn't that what the Send button is for? Or am I confused?

Derrell
 

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message




Derrell Lipman wrote:

>
> On Sun, Oct 25, 2009 at 09:49, panyasan <info@...> wrote:
>
> I'm trying out your demo. If I select qooxdoo.test.echo it works
> correctly,
> but if I then change the parameter data and push Send, it does not appear
> to
> issue another echo request. Isn't that what the Send button is for? Or am
> I
> confused?
>
>

No, you're completely right, it should work like you expect. I cannot
reproduce the wrong behavior here, though. It might be a timeout issue,
maybe? The spinner for the timeout has a value of 3 although it should have
a value of 10 according to my code:

      var timeoutSpinner = new qx.ui.form.Spinner().set({
        minimum  : 3,
        maximum  : 60,
        value    : 10,
        editable : true
      });

I don't know if this is a bug or if I am setting it the wrong way.

C.


--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3889288.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Me again. I polished the automated testing support a bit more, now it should
be usable:

http://n2.nabble.com/file/n3893203/Bild%2B4.png 

Please have a look at the readme that explains most of it:

https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/readme.txt

The  updated demo is here:

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build

The remaining questions should be answered by the documentation in the API
viewer and the test data file:

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/api
https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/demo/default/source/script/rpcconsole.testData.js

Thanks to Derrel for providing such an extensive backend test suite that I
could rely on.
 
Enjoy,

Christian

--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3893203.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


I forgot: if you want to automatically start the test after loading the
application, use this link:

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build/?runTest=runAutomatedTests



panyasan wrote:

>
> Me again. I polished the automated testing support a bit more, now it
> should be usable:
>
>  http://n2.nabble.com/file/n3893203/Bild%2B4.png 
>
> Please have a look at the readme that explains most of it:
>
> https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/readme.txt
>
> The  updated demo is here:
>
> http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build
>
> The remaining questions should be answered by the documentation in the API
> viewer and the test data file:
>
> http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/api
> https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/demo/default/source/script/rpcconsole.testData.js
>
> Thanks to Derrel for providing such an extensive backend test suite that I
> could rely on.
>  
> Enjoy,
>
> Christian
>
>

--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3893218.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Re: YAC (Yet another contribution): RpcConsole - ready for 1.0?

by panyasan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hello everyone,

I tested the cross-domain behavior and in my tests, it worked. You should
now be able to run the qooxdoo.test.* tests against your own backends -
provided that they are publically accessible - from

http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build

The only thing you need to change is to enter the URL of your JSON-RPC
server in the "Server URL" field of the "Service Info" tab and expose the
service methods that come withe the Rpc* backend contributions (the ones
Derrell's RpcExample frontend require).

I'd be happy if someone could test the Perl and Java backends against the
RpcConsole. If they work, I'll do a 1.0 release.

Thanks,

Christian


panyasan wrote:

>
> Me again. I polished the automated testing support a bit more, now it
> should be usable:
>
>  http://n2.nabble.com/file/n3893203/Bild%2B4.png 
>
> Please have a look at the readme that explains most of it:
>
> https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/readme.txt
>
> The  updated demo is here:
>
> http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/build
>
> The remaining questions should be answered by the documentation in the API
> viewer and the test data file:
>
> http://www.qxtransformer.org/qooxdoo/RpcConsole/trunk/demo/default/api
> https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcConsole/trunk/demo/default/source/script/rpcconsole.testData.js
>
> Thanks to Derrel for providing such an extensive backend test suite that I
> could rely on.
>  
> Enjoy,
>
> Christian
>
>

--
View this message in context: http://n2.nabble.com/YAC-Yet-another-contribution-RpcConsole-tp3869256p3904811.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@...
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel