Platform and Studio 7.0 BETA

Hi everyone,

It’s time to present to you the BETA version of the new major platform release 7.0.
The new features and API improvements are mostly finished and we are working on bug fixes and documentation. The final release is scheduled for the middle of December.

In the framework, the main area of changes is Generic UI: we have upgraded it to Vaadin 8 and introduced a completely new API for managing screens and working with data on the client. At the same time, your existing codebase will continue to work without any dramatic changes because we took care of backward compatibility.

There are even more changes in Studio. It’s literally a new product built (almost) from scratch as the IntelliJ plugin. CUBA Studio on the IntelliJ platform, without exaggeration, brings developer’s experience to a new level and opens great possibilities for us to improve it further.

Please see the Release Notes, Developer’s Manual and Studio User Guide. The documentation is work in progress and will be finished by the time of the final release.

Studio BETA is now available as a standalone application for your operating system, see the download links below and the installation instructions.

Later we are also going to publish a plugin that you will be able to install into an existing IntelliJ IDEA (Community or Ultimate).

The platform 7.0.0.BETA artifacts are available in both repo.cuba-platform.com and Bintray repositories, so you will be able to use them in the new Studio.

Please post bug reports or questions about the BETA version here on the forum with the beta tag.
We are looking forward to your feedback!

UPDATE 2018-12-04: BETA3 of the framework and Studio is released, the Studio download links above are updated.

UPDATE 2018-12-18: the framework BETA4 and Studio BETA5 are released, the Studio download links above are updated.

17 Likes

Nice! It’s a big step for CUBA!

YES!

Well, that’s the day gone …

Download links have been updated!

Starting some experiments for v7 now!

1 Like

How do you set up a TwinColumn? I think I need two parameters for the injection field, but I’m not sure what they are.

Screen editor failing with a com.vaadin.ui.GridLayout$OutOfBoundsException

Any way to fix that from the xml file?

We are going to change it slightly and TwinColumn will have only one type - value type.

Please note, that this version is not for production and even not for the regular development, it is a preview of features and new approaches.

Could you please share your XML file ? Is it exception in Studio or in your application ?

Please note, that this version is not for production and even not for the regular development, it is a preview of features and new approaches.

No problem. I was just trying it out to see how much work is involved converting it over.

Could you please share your XML file ? Is it exception in Studio or in your application ?

It happens in Cuba Studio when I click on the designer tab to open the screen xml.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://schemas.haulmont.com/cuba/window.xsd"
        caption="msg://caption"
        class="com.test.peer.web.script.CompletionReasonDialog"
        messagesPack="com.test.peer.web.script">
    <dialogMode forceDialog="true"
                height="400"
                width="600"/>
    <layout>
        <grid id="completionReasonDialogGrid"
              spacing="true"
              width="60%">
            <columns count="1"/>
            <rows>
                <row>
                    <label id="completionReasonDialogLabel"
                           value="msg://completionReasonDialog.labelText"
                           width="100%"/>
                </row>
                <row>
                    <textArea id="completionReasonTextArea"
                              required="true"
                              requiredMessage="msg://completionReasonRequiredMessage"
                              responsive="true"
                              width="100%"/>
                </row>
                <row>
                    <buttonsPanel id="completionReasonButtonPanel">
                        <button id="okButton"
                                caption="msg://OK"
                                invoke="onOkButtonClick"/>
                        <button id="cancelButton"
                                caption="msg://Cancel"
                                invoke="onCancelButtonClick"/>
                    </buttonsPanel>
                </row>
            </rows>
        </grid>
    </layout>
</window>

This is the error:

Validation error

com.vaadin.ui.GridLayout$OutOfBoundsException
	at com.haulmont.studio.ui.sd.layout.layouts.EditableGridLayout.addComponent(EditableGridLayout.java:284)
	at com.vaadin.ui.GridLayout.addComponent(GridLayout.java:309)
	at com.haulmont.studio.ui.sd.layout.layouts.EditableGridLayout.addComponent(EditableGridLayout.java:275)
	at com.vaadin.ui.GridLayout.addComponent(GridLayout.java:381)
	at com.haulmont.studio.ui.sd.layout.layouts.EditableGridLayout.addComponent(EditableGridLayout.java:256)
	at com.haulmont.studio.ui.sd.layout.ComponentModelMapper.updateComponentFromModel(ComponentModelMapper.java:418)
	at com.haulmont.studio.ui.sd.layout.ComponentModelMapper.updateComponentFromModel(ComponentModelMapper.java:452)
	at com.haulmont.studio.ui.sd.layout.ComponentModelMapper.updateComponentFromModel(ComponentModelMapper.java:452)
	at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.editModel(ScreenLayoutDesigner.java:205)
	at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.lambda$activate$5(ScreenLayoutDesigner.java:377)
	at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:53)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:959)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:57)
	at com.intellij.openapi.application.ReadAction.run(ReadAction.java:53)
	at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.activate(ScreenLayoutDesigner.java:350)
	at com.haulmont.studio.intellij.ui.sd.ScreenDesignerEditor.lambda$selectNotify$0(ScreenDesignerEditor.java:103)
	at com.haulmont.studio.intellij.ui.browser.WebBrowser.lambda$loadEditor$2(WebBrowser.java:173)
	at com.haulmont.studio.ui.app.EditorPanelStorage.register(EditorPanelStorage.java:35)
	at com.haulmont.studio.ui.app.MainUi.createAndRegisterDesigner(MainUi.java:97)
	at com.haulmont.studio.ui.app.MainUi.init(MainUi.java:69)
	at com.vaadin.ui.UI.doInit(UI.java:693)
	at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:216)
	at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1422)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
	at com.haulmont.studio.ui.app.StudioApplicationServlet.service(StudioApplicationServlet.java:81)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)

Great news!! Thank you.

Can you share the link to BPM in v7?

Hello! Congrats! Good job!

If you mean the documentation, it’s not ready yet. The add-on artifacts are in the repositories as usual.

Hi @knstvk,

I noticed in the new CUBA Studio, after i started the project, I can’t find anywhere show me tails of tomcat logs, though i can do this in the IDEA ‘terminal’, but it’s not as straightforward as previous versions.

Hi Bryan,
Yes, at the moment it’s not that convenient. We are thinking how we can solve this problem.

Is it possible to enable Debug?

I have a testing project for which all CUBA options are gone (CUBA menu and Cuba projectView component) and can’t track the source of the problem (a new blank project works ok).
idea.log gives no clues, so… how to increase the plugin verbosity?

marc

UPDATE: I tracked down the problem to how I added Lombok support. Opened another thread about that here.