Porting to Cuba

We have several web apps written using the SnappMX IDE, with Tomcat/Java in the middle and MySQL on the backend. But SnappMX uses Adobe Flash and Flash will be retired by 2020, so we need to port our existing web applications.

Our implementation does not use any kind of fancy database code. SnappMX interacts with Java web services, passing all parameters as Strings. In the Java we construct SQL queries and manage the data there; creating SQL query, insert, update string then directly calling to MySQL and handling those using our own Java library methods.

SnappMX screen widgets are populated directly from the MySQL database: each detail screen has an associated MySQL table or view and a Unique ID. SnappMX also has a great list widget with optional paging and filtering of records.

Cuba appears to have similar functionality but would we be forced to use the Spring mechanisms or some kind or relational object mapping in order to interact with the database?

SnappMX keeps a complete representation of each screen in an XML format.

Cuba supposedly has some way of describing screens in XML, though I have been able to find that in the documentation. It may be possible for us to write code to generate Cuba screen XML from SnappMX screen XML, but the sticking point will be how each screen is populated from the database.

First, where is the documentation for specifying screens in XML for Cuba?

Next, has anyone had any success doing this kind of port?

I’d really appreciate anyone’s thoughts and experiences if they have faced similar challenges.



Hi Terry,

A formal definition of CUBA screens XML is in window.xsd. This file is also packed in a CUBA JAR and available when you work with the project in an IDE.

Also, see the Visual Components Library documentation - every component has a description of its XML element and all its attributes.

Regarding direct porting of UI, I seriously doubt that it is possible with an acceptable level of quality. In my opinion, the best approach for migration from a legacy system is to create CUBA entities and standard CRUD screens from the existing database using “Generate model” in Studio and then port business logic and specific UI features manually.

Thanks Konstantin. I was coming to a similar consclusion. Are there any experienced Cuba users available as paid consultants who might help us in looking at our porting process?


Sure, we can help you with the migration. Take a look at our paid services here: High productivity application development platform

Many thanks. I’ll check that out.