Category: News

JVx REST interface update

Post to Twitter

Our generic REST interface of JVx got an update.

The REST services are a powerful feature of JVx and built-in. Usually you would implement your own REST services, but JVx has the concept of lifecycle objects and the powerful action mechanism. It would be ugly to implement another layer on top of JVx just for REST services. This is a framework feature.

We had this powerful feature for a long time and it is still in use for different use-cases:

AngularJS 4 with VisionX and JVx REST services
AngularJS with JVx in action

Our REST interface just works and you are able to create microservices very fast and efficient.

But the interface has a problem with some kind of parameters because they are also generic. Suppose you have the following method:

public IFileHandle createReport(ICondition pFilter, SortDefinition pSort)

The result type (IFileHandle) isn't a problem because JVx will send the bytes in the REST response, but the parameters: pFilter and pSort are specific types and not base types like String, Array, int, float.

It wasn't possible to call such methods without wrapper methods like:

public IFileHandle createReport(String pFilter, String pSort)
{
   return createReport(createCondition(pFilter), createSort(pSort));
}

Still not hard to solve, but parsing the filter and sort definition weren't trivial tasks. In fact, it was annoying.

We now have support for such parameters and much more. It's not super modern but an awesome solution!

Assume you have following code in one of your lifecycle objects:

public DBStorage getAdrData() throws Throwable
{
        DBStorage dbs = (DBStorage)get("adrData");
       
        if (dbs == null)
        {
                dbs = new DBStorage();

                dbs.setDBAccess(getDataSource());
                dbs.setWritebackTable("ADDRESS");
                dbs.open();
               
                put("adrData", dbs);
        }
       
        return dbs;
}

The DBStorage class offers a public method:

public IFileHandle createCSV(String pFileName, String[] pColumnNames, String[] pLabels,
                             ICondition pFilter, SortDefinition pSort) throws Exception

This method creates a CSV report (address data in this example). It has some parameters for the expected filename, optional column names which should be used for the report, optional labels for the column names, the filter condition and sort definition.

To call this method as REST service, simply send a post request with following information:

e.g. URL:

http://localhost/jvx/services/rest/demo/Address/object/adrData/createCSV

(demo is the application name, Address is the lifecycle object name, adrData is the object name)

Body:

["test.rtf", null, null,
 "new LessEquals('NR', 10)",
 "new SortDefinition(new String[] {'NR', 'STAIR'}, new boolean[] {true, false}"]);

The body contains Java Code :) (in the JSON string).

W00t?

JVx got support for executing simple Java code. We introduced the new utility class SimpleJavaSource. It's a backport from our commercial product VisionX. The SimpleJavaSource is able to execute the given parameters and creates real Java objects. It doesn't support conditions or loops, so it's really simple - but powerful!

With our new SimpleJavaSource and the support for parameter Code, it'll be possible to call most methods without additional wrapper methods.

The SimpleJavaSource class is now included in JVx and ready to use. It's simple but powerful:

SimpleJavaSource ssj = new SimpleJavaSource();
ssj.addImport("javax.rad.model.condition.*");

String sEqualsCode = "new Equals('ID', 0).or(new Like('NAME', '%john%'))";

ICondition cond = (ICondition)ssj.execute(sEqualsCode);

The new features will be available with our next JVx release and are already available via nightly builds.

JVx with Vaadin 8.1 - Milestone 1

Post to Twitter

What a great Monday :)
All our Vaadin 7 projects were migrated to Vaadin 8.1 successfully. First snapshots are available and we also have nightly builds for you.

We use the v7 compat layer in our first migration phase because we want a smooth and not an all at-the-same-time migration. Everything works so far and we started the next phase of our migration plan: Cleanup.

We'll replace the v7 compat layer and use v8 features wherever it makes sense and is possible. This will take some time because we expect some hidden problems, but we'll solve the little problems for you :)

VisionX Update Release for 2.4

Post to Twitter

We have awesome news for you. We'll release the 2nd update of VisionX 2.4 by the end of this week!

The update will come with some new features and many bugfixes. The most important feature is that all open source libraries were updated. You'll have access to new APIs and new feautres of all libraries. VisionX itself got some bugfixes regarding the visual designer. A great new feature is the support for AddOns with access to VisionX. It'll be possible to customize VisionX for your needs.

We also have some new AddOns and Demo Applications e.g. the VaadinAddOn which enables you to create your own vaadin widgetset/theme in seconds.

The 2.4 release of VisionX will be the last version with Vaadin 7 because we already work with Vaadin 8.1 in our development branches.

We'll also change the version number of VisionX with our next release. Instead of 2.5, it'll be 5.0.

Why?

Because VisionX is very mature and the version number 2 doesn't fit. The next release will be a major change because VisionX will contain Vaadin 8.1 and this library requires Java 8, so also our VisionX projects will require Java 8. This isn't a big change, because VisionX itself comes with Java 8. The difference is the project configuration for your IDE.

All planned changes shouldn't be a problem for you, because Java 9 is out and Java 8 is the Java version you should use for your projects. The Java version won't make any difference for our Oracle Forms users because our JVx library will be built with Java 6 - no changes for you.

JVx Vaadin UI and Vaadin 8.1

Post to Twitter

Our JVx Vaadin UI is based on vaadin 7.7.9 right now. It works great but vaadin moves forward in big steps. The latest 8.1 release contains many new features and bugfixes. Not all fixes were backported to vaadin 7. This is bad but clear for us.

So we should switch to vaadin 8.1?

This isn't an easy task because vaadin 8 has some new APIs and vaadin moved some parts like FontAwesome to new AddOns. The ContextMenu AddOn was compatible up to vaadin 7, but 8 needs the new official ContextMenu AddOn. The data bindings will work with 8 but needs a compatibility layer.

But anyway, we decided to start the migration and will do everything step-by-step. The first task will do the update of all our vaadin projects to Java 8 and vaadin 8.1. The next step will do the integration of v7 compatibility layer and the following tasks will fix all other problems like ContextMenu, FontAwesome, changed APIs. It's a bigger project and we hopefully will be finished by the end of October.

This blog post is a notice for our vaadin UI users!

We'll keep you up to date :)

Vaadin AddOn for VisionX

Post to Twitter

We have a new AddOn for all VisionX users. It's the Vaadin AddOn.

The new AddOn makes it possible to integrate Vaadin AddOns from the official Vaadin AddOn Directory. It makes the integration super simple because we solved the technical problems. The AddOn does all the hard work for you and after two button clicks, everything is done.

With our new AddOn, we introduced more new VisionX features. In the next update release, it will be possible to create AddOns which have access to VisionX itself. Use the internal DataBooks or the Designer, the WizardManager and all other APIs. It'll be possible to create your own VisionX based on VisionX!

Also new is the automatic restart feature. It's possible to restart VisionX after installing an AddOn or Module with a simple button click. This feature is the base for automatic VisionX updates. Currently, we don't update VisionX automatically, but we think it will be nice for one of the next versions.

Get an impression

Vaadin AddOn for VisionX

The AddOn is commercial and not included in VisionX. Contact our sales team to get more information!

DOAG 2017

Post to Twitter

Auch in diesem Jahr sind wir wieder auf der DOAG anzutreffen. Details zur Veranstaltung.

Neu ist, das wir mit 3 Vorträgen vertreten sind:

  • Transformation: Fachbereich & IT digitalisieren gemeinsam
  • Low Code Plattform – A Web & Mobile UI Live Coding Session
  • Pimp your Forms - Forms Modernisierung mit Java

Nähere Details zu den Vorträgen, sind demnächst im Vortragsprogramm zu finden.

GUI Testing with VisionX

Post to Twitter

A new AddOn for VisionX is coming :)

Our GUI testing tool

A first impression

Application tester

Application tester

The tool is a recorder for VisionX/JVx applications. It has an option to export created tests as JUnit tests which makes it easy for Software developers to integrate the GUI tests in their CI systems. It's a super easy tool with so much value for you!

The App Tester will be available in our solution store and will be an AddOn for VisionX.

If you are interested in details, leave a comment.

Map component for JVx applications

Post to Twitter

We played around with some interesting stuff in the last weeks. Some customers and users asked us if we have a Map component.

We don't have a ready-to-use component but there are many free and commercial solutions available. The integration in a JVx application with custom components is not a problem and doesn't need much effort. But sure, an out-of-the-box solution would be useful.

Our Research team did create a PoC for a Map. The results is very nice and we want to show you some screenshots from our tests.

Swing integration (Tab mode)

Swing integration (Tab mode)

Swing integration (frame mode)

Swing integration (frame mode)

Vaadin integration

Vaadin integration

Vaadin integratin (corporation mode)

Vaadin integratin (corporation mode)

We didn't add the component to JVx because it's just a PoC and not ready-to-use.
But the Map integration looks great :)

VisionX 2.4 News

Post to Twitter

This is a short announcement of VisionX 2.4. We're near to the finishing line and will release VisionX 2.4 in December. It's an awesome release with a big number of changes and great new features.

VisionX 2.4 is not a real Feature Release but as always, we have great things on board. The focus was on "modularity". This has nothing to do with JDK 9 or Jigsaw! With VisionX 2.4 it'll be super easy to customize VisionX for your needs or to "create your own VisionX". We offer some great new Modules and AddOns.

Some impressions

HTML5 option

Create applications without HTML5

Super easy module installation

Super easy module installation

New components as Data Links

New components as Data Links

Module: User Filter

Module: User Filter

Standard Screen generator wizard

Standard Screen generator wizard

Customized screen generator wizard

Customized screen generator wizard

VisionX will be shipped with Vaadin 7.7 and latest versions of JVx and sub projects.
We offer some great Modules and AddOns like Maintenance management and User Profiles.

With User Profiles, it'll be possible to save the application state per User. This means that the position of screens can be saved as well as divider positions of split panels or it'll be possible to configure visible columns of grids.

This was a very short overview of VisionX 2.4, but I guess you'll like it!

HANA Express and VisionX

Post to Twitter

HANA Express is available for some days. HANA is the In-Memory Database solution of SAP.

What is HANA Express?

SAP HANA, express edition is a streamlined version of SAP HANA that can run on laptops and other resource-constrained hosts, such as a cloud-hosted virtual machine, for free up to 32G of memory use.

reference: https://go.sap.com/developer/topics/sap-hana-express.html

We wrote an article about our HANA experiments in December 2014. We had a test account for the online HANA. Our tests were successful but we weren't convinced from the system because it was slow and had many JDBC driver problems. Our bug reports were never answered.

But we never give up and the Express edition was interesting for us. We thought it might be worth some hours for our R&D team. The result is awesome!

We think that VisionX is the best tool for application development with HANA databases. Your web application is ready in 1 minute without coding!

Some details?

The installation of the Express edition wasn't tricky. The documentation is straight forward. The database is up and running in some minutes.

We had some problems with JDBC driver because it wasn't available as separate download and we didn't find any documentation. But it was part of the HANA plugin for Eclipse. Not that easy, but it was part of a jar file: com.sap.ndb.studio.jdbc_2.3.8.jar.

The next tricky thing was the JDBC connect string: jdbc:sap://hxehost:30013/?currentschema=System. The username was SYSTEM.

With all this information, it was super easy to create an application with VisionX for HANA express. We guess it makes no difference if you use HANA or HANA express.

How it works? Check the video. It's from 2014 but still impressive.

The current JDBC driver works much better than in 2014 and the performance of the database is great - compared to 2014.

If you're interested in more details, write a comment ;-)