Jmix replacements for CUBA Configuration Interfaces and built-in Freemarker functionality?

Jmix version: 1.1.1
Jmix Studio plugin version: 1.1.4-213
IntelliJ IDEA 2021.3 CE - Build #IC-213.5744.223, built on November 27, 2021
Operating System: macOS 12.0.1 (21A559)
File System: Case-Sensitive Journaled HFS+ (APFS)
Datebase: PostgreSQL 13

Hi Everyone

Can you please tell me what the Jmix replacements are for the following CUBA functionality that is no longer available or give me some suggestions. My application depends heavily on this.

  1. Configuration Interfaces - Using Configuration Interfaces - CUBA Platform. Developer’s Manual

  2. The Freemarker functionality, e.g. with…

TemplateHelper - modules/global/src/com/haulmont/cuba/core/global/TemplateHelper.java

and with the setTemplatePath() and setTemplateParameters() methods from the EmailInfoBuilder, for example…

    EmailInfo emailInfo = EmailInfoBuilder.create()
            .setAddresses(toAddress)
            .setSubject(subject)
            .setFrom(null)
            .setBcc(bccAddress)
            .setSendInOneMessage(true)
            .setBodyContentType(EmailInfo.HTML_CONTENT_TYPE)
            .setTemplatePath(getEmailTemplatePath())
            .setTemplateParameters(templateParamMap)
            .build();

Thanks in advance for your feedback.

Best regards
Chris

Hi Everyone

For your information, I just found this reference to Configuration Interfaces Config interfaces not implemented yet? (I don’t know why I couldn’t find it before; I did a lot f searching), so that question has been answered for the meantime.

Best regards
Chris

Hi,

  1. For configuration properties stored in the application.properties files, you can use the “type-safe configuration properties” feature from the Spring Boot:
    Core Features

  2. For configuration properties stored in the database - there will be a replacement feature in Jmix 1.2.
    See Jmix roadmap: https://github.com/orgs/Haulmont/projects/1#card-70073717

  3. For the Freemarker - Jmix doesn’t add this dependency. Methods setTemplatePath() and setTemplateParameters() are also gone. But you can easily import the library to your project and use it in your code.
    You can also copy contents of the TemplateHelper class to your project if you like its API.

1 Like

Hi Alexander

Thank you for the feedback and suggestions. I can think of several different solutions for Configuration Interfaces problem and the Type-safe Configuration Properties could be useful but I would have to build my own UI screen to manage them (50 currently) and I do not have time for that. I believe it is better to wait for the new DB implementation; it will be better than something I can build myself and will be the new standard.

The Freemarker situation is similar. I really do not have the extra time to port it from the CUBA implementation but that is probably the only way to retain the functionality that I have, so I will do it anyway. That is, unless someone else beats me to it and provides it to the community.

Best regards
Chris