[ovirt-devel] oVirt.js GWT wrapper prototype

Martin Betak mbetak at redhat.com
Mon Jun 30 16:22:47 UTC 2014


Hi Vojtech,

just one small remark to the oVirt.GWT wrapper.
Do you think it would be possible to replace 
> Sdk.get().api().getDataCenters() with
> Sdk.api().getDataCenters() or even better yet with
> Sdk.getDataCenters()
In general I think that "Flat is better than nested" and I don't think 
the collection names would introduce any collisions with the .services() 
namespace so this should be a safe change.

Other than that I really like the current prototypes for both oVirt.js
and oVirt.GWT and I'm looking forward to future development.

Best regards

Martin

----- Original Message -----
> From: "Vojtech Szocs" <vszocs at redhat.com>
> To: devel at ovirt.org
> Sent: Tuesday, June 24, 2014 1:29:26 PM
> Subject: [ovirt-devel] oVirt.js GWT wrapper prototype
> 
> Hello everyone,
> 
> following the announcement of oVirt.js prototype, I've developed a sample
> GWT wrapper that provides Java API to oVirt.js for all GWT applications.
> 
> Please find the GWT wrapper patch attached. It bundles oVirt.js & Lo-Dash
> libraries via GWT module (SdkGwtWrapper) providing Java-like API based on
> oVirt.js.
> 
> In order for WebAdmin to use oVirt.js GWT wrapper, all we have to do is
> add following into WebAdmin.gwt.xml (GWT module descriptor):
> 
>   <inherits name="org.ovirt.engine.sdk.gwt.SdkGwtWrapper" />
> 
> and add following into pom.xml (Maven project descriptor):
> 
>   <dependency>
>     <groupId>${engine.groupId}</groupId>
>     <artifactId>ovirt-js-gwt-wrapper</artifactId>
>     <version>${engine.version}</version>
>     <scope>provided</scope>
>   </dependency>
> 
> and that's it.
> 
> The Java API takes inspiration from oVirt.js API. For example, to add
> new DataCenter:
> 
>   // Create data object template, 'name' and 'local' are required.
>   DataCenterTemplate dcTemplate = DataCenterTemplate.create(
>     "test-dc", // name
>     false // local
>   );
>   // Set optional parameters such as 'description', if necessary.
>   dcTemplate.setDescription("my-desc");
> 
>   // Obtain DataCenter resource collection.
>   ResourceCollection<DataCenter> dcColl = Sdk.get().api().getDataCenters();
> 
>   // Add new DataCenter by running 'add' operation on 'dcColl'.
>   dcColl.add(dcTemplate).success(new SuccessCallback<DataCenter>() {
>     @Override
>     public void onSuccess(DataCenter dc) {
>       Window.alert("Added: " + dc.getName());
>     }
>   }).run();
> 
> The concept of resource, resource collection and operation is the same
> as presented in oVirt.js.
> 
>   dc.setName("test-dc-updated");
>   dc.setDescription("test")
>   dc.update().run(); // we could register 'success' callback here
> 
> You can see the full example by looking at SdkGwtWrapperTest class,
> located in WebAdmin codebase (org.ovirt.engine.ui.webadmin.sdk_test).
> 
> Note that 'DataCenter' and 'DataCenterTemplate' will probably be
> auto-generated from oVirt Engine REST API definition (XSD/RSDL).
> 
> As mentioned in my previous email, oVirt.js GWT wrapper ("overlay")
> can be initially part of ovirt-engine repo, while oVirt.js project
> deserves (in my opinion) a separate repo on its own.
> 
> Regards,
> Vojtech
> 
> _______________________________________________
> Devel mailing list
> Devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/devel



More information about the Devel mailing list