This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

E-Plug (1.2.60) Update site

If you read the article about VisionX 6 update you saw that E-Plug is also updated from 1.2.60 to 3.0.0.

We released E-Plug 3.0.0 already and 1.2.60 is not available via Eclipse Marketplace anymore. However, if you made a mistake and want to stay with 1.2.60 it's still possible. In this case, simply add a custom update site in your Eclipse settings and use following URL: https://eclipse.sibvisions.com/eplug.1.2.60

This location contains latest E-Plug 1.2.60.

The default location for latest E-Plug is: https://eclipse.sibvisions.com/eplug

JVx 3.0 is available

We're happy to announce that JVx 3.o is available. It's a feature release and fixes some problems.

All changes are documented in our ticketing system. The release contains 138 tickets and much more work behind the scenes. It is full of experience gained from countless projects. This version is the heart of our low-code platform VisionX and it is a rock star.

JVx 3 is the effort of 34 months hard work.
Thank you Martin and René for your tireless work!

It comes with better database independency, Java code parsing and execution, Image metadata (mobile devices), improved Parameter handling and much more. The full list of changes is available in our ticketing system and in the changelog of our code repository.

Start with JVx

VisionX 6.0 is out

We're happy to announce VisionX 6.0.351

The new version is full with updates. It doesn't contain many new features but many new possibilities because of Java 21, JavaFX 23, latest reactUI, flutter UI and an updated Previewer app.

Before starting with VisionX 6, PLEASE read our update guide and also additional information about our Previewer app update.

What's new?

  • Disable translation

    It's possible to disable the translation temporary while you design your application, because sometimes it's not good to show translated labels/names immediate. The VisionX button in your application now contains a checkbox. This doesn't change your application, only temporary in VisionX.

  • Improved layout drag/drop

    We changed dragging and dropping elements for our layouts a little bit, to show gaps. This is not a big thing, but it just looks right now.

  • Java 21
  • JVx application framework 3.0
  • Apache Tomcat 11 support
  • Postgres database 14
  • ARM64 support (Apple silicon (M1), linux, windows)
  • Version update for all AddOns and Modules

As usual, VisionX 6.0.351 is available in the download area for our customers or as trial.

Have fun!

VisionX Previewer App 3.2

We'll release VisionX 6 by the end of the year. Some hours later, we'll release VisionX Previewer 3.2.0 for Android and iOS.

You should know that this app is not compatible with applications, created with VisionX 5 and earlier. If you update the Previewer app and try to use your old applications, it will show a version mismatch message.

So be sure to update all your applications with VisionX 6 or just keep VisionX Previewer 3.1.0.

If you update your applications with VisionX 6 and keep VisionX Previewer 3.1.0, the same version mismatch message will appear because VisionX Previewer 3.2.0 is required for VisionX 6 and later.

Why is it incompatible?

The Previewer app now supports features which were not available in VisionX 5 and earlier. Such features are cell styling with fonts, images, colors (Cell Profiles) and readonly cells (Read only checker).

But no hurry, no rush. Take your time to update to VisionX 6, update your installed applications and if you're done, just update the Previewer app.

VisionX 6 update guide

Our next big VisionX update is just around the corner.

VisionX 6

We'll release it by the end of the year and sorry for missing EA versions. We did not release EA versions, as there is no way back to older VisionX versions. So please read update guide carefully!

Before you can work with VisionX 6, you should know some important things about it and also that there is more to do for you than just an installation of an Update!

VisionX 6 comes with updated binaries of Java and Postgresql and many updated open source libraries like JVx, reactUI or flutterUI.

Step-by-Step update procedure
  1. Create a backup of all your applications and external databases
    • Create an update export of your application with database, with your current VisionX version
    • If your database is an external database or you use multiple database schemas, create a backup of it because VisionX doesn't backup external databases or multiple schemas
    • If you use a version control system like svn or git - commit everything
  2. Keep your current VisionX version and use the zip version of VisionX 6

    Don't uninstall or remove your old VisionX version, keep it until everything is moved to VisionX 6. Simply use VisionX 6 zip archive and unzip it in your home directory. Don't use VisionX 6 installer until everything is working with VisionX 6.

  3. Request a new VisionX license

    If you have a subscription license of VisionX, you don't need a new license because everything will work with your credentials. If you don't use our subscription model, please request a new license for VisionX 6. We'll send you a new license. Please be patient with us if it takes a little longer. In the meantime, you can work with your current VisionX version.

  4. Request a new E-Plug license

    Please request a new E-Plug license BEFORE updating E-Plug. Please be patient with us if it takes a little longer. In the meantime, you can work with your current E-Plug version.

  5. Install AddOns

    Be sure that you install all AddOns which you're using in your current VisionX version.
    This is important and don't do it later because it makes it much easier for you!

  6. Update E-Plug (after you got your license)

    Please update your E-Plug version from 1.2.60 to 3.0.0 after all your applications are working in VisionX 6. Just for your safety!

  7. Import your application(s) with VisionX 6

    If you don't use an apps.xml with VisionX (usually only development companies will use that), just import your application(s) in VisionX 6 and everything should be fine. If VisionX doesn't show an information, you're one step further.

    If you use an apps.xml, be careful and be sure that you have a backup!
    In this case, it's not possible to use the same application directory with your current VisionX version AND VisionX 6. You should revert all files before using the application with an older VisionX.

    If you copy your apps.xml into your VisionX 6, it should work as well without additional tasks. If VisionX doesn't show an information, you're one step further.

  8. Update modules

    It's important to update ALL modules for every single application. Also update the user management module!

  9. Known problems / Problems

    If you use custom libraries, created for older VisionX versions, please update all custom libraries! In this case, VisionX will show a warning which will look like following:

    Dependency warning

    Dependency warning

    This is a warning will be shown if you application contains older/incompatible modules - just update the module(s). But it will also be shown if you have custom libraries which are not compatible with VisionX 6.

  10. Remove old VisionX
    If VisionX doesn't show any unusual icons or warnings, you application(s) will work with VisionX 6. Simply start your application in VisionX and do a Live Preview. If everything looks fine, it's time to remove your old VisionX installation and install VisionX 6 with an installer or keep the zip version. The only difference is the OS integration.

If you follow above instructions, VisionX 6 will update everything it needs to use the application(s) with VisionX 6. We tried to keep the update procedure as simple and short as possible, but this time it isn't possible without manual interaction because of fundamental changes.

If you have unexpected problems with the update to VisionX 6, please contact our support team. However, you should note that our support team cannot help you with custom libraries or your own AddOns/Modules. In this case, you need help from one of our Consultants or you just update the AddOns and Modules on your own.

Now you just have to be patient until we officially release VisionX ;-)

VisionX 6 roadmap

The next version of VisionX will be 6.0. We plan to release it at the end of 2024.

Some big changes will be:

  • Java update from 12 to 21 LTS
  • JavaFX update from 12 to 23
  • Embedded postgres update from 9 to 14
  • Support for Silicon Macs and in general, architectures x86_64 (amd64) arm64 (aarch64)

VisionX 6 will include the latest version of our JVx application framework, version 3.0. The development of our application framework is on the home stretch. We have nightly builds in great state.

In VisionX 6 we'll also bundle our latest reactUI with bigger framework updates and our latest flutterUI which is compatible with flutter 3.24. The new UIs won't be backwards compatible because of some bugs and new features which are not available in applications created with VisionX < 6. If you're using reactUI, old apps will still work and if you plan to use our new VisionX Previewer, simply update your application(s).

The OS integration of VisionX 6 will be improved as well, e.g better Dock integration under Ubuntu or improved menu handling under macOS. We did integration tests with CentOS (9) Stream, Fedora (36 to 40), Debian (12), Kali Linux, Ubuntu (20 to 24), macOS (Intel from 10.15, Silicon from 12.0), Windows (from 10).

We will release an Early Access version in the next few weeks.

VisionX 5.11.615 is out

We're happy to announce VisionX 5.11.615

The new version is fully backwards compatible and contains many improvements. It also fixes some reported problems and brings new features. This version is the last version of series 5 and we didn't change bigger blocks. The 5.11.615 should be a great final version of VisionX 5. We already started development of VisionX 6 and it will bring some bigger changes because we'll update to Java 21. We also will update our embedded postgresql database. We'll update to our latest react based UI and also to latest mobile app. We have some great features in the pipeline for all of you.

... back to VisionX 5.11.615

What's new?

  • NEW calculated field
    Calculated field

    Calculated field

    Use this field for sum, average, min, max calculation or simple record counts. The calculated value can be changed after calculation or you can define custom formulas. It's on you. It's super easy to use and you can access the calculated fields in any action.

  • Actions and Functions

    Our new actions are:

    • Perform search

      If you have a "manual" Search button in your screen, automatic search is disable automatically. With this action it's possible to force search)

    • Download URL

      Save data from an URL.

    • Contains (value, search, case_sensitive)

      Checks if a search value is part of a specific value. case_sensitive means (B is not the same as b; but case insensitive means B is the same as b)

    • Starts with (value, search, case_sensitive)

      Checks if a value starts with a specific search value

    • Ends with (value, search, case_sensitive)
    • for loop with fixed number of iterations
    • Checks if a value ends with a specific search value

    Changed actions:

    • E-Mail
      It's now possible to set dynamic text as subject instead of fixed text.

    We have some totally useful new functions for you:

    • length (text)

      Counts the number of characters

    • substring (text, start)

      Creates a sub string from start to the end

    • substring (text, start, count)

      Creates a sub string from start and maximum count characters

    • countAll (column)

      Counts all records. Compared to count(column) which counts all records where the value is not empty.

    The description of an action shows possible functions as well:

    Detailed description

    Detailed description

  • Improved field selection
    Choose field

    Choose field

  • Messages now support feedback input

    Feedback input

    Feedback input

  • Changing license is now possible without "invalid license" warning
  • Changed some icons in elements area of visual designer
  • Creation of XML reports fixed

Starting with VisionX 5.11.615 it will be possible to use updates of following AddOns:

  • Embedding 1.8-4
  • Audit Log 1.2-11
  • REST 1.14-ea10
  • Query Editor 1.4.6

As usual, VisionX 5.11.615 is available in the download area for our customers or as trial.

Have fun!

Adding new paths for native libraries at runtime in Java (part 2)

Part 1 of this article is available here.

Since Java 14, ClassLoader was changed a little bit and usr_paths it not available as field anymore. It's still possible to change the java.library.path at runtime, but it's still tricky and dirty:

Method getDeclaredFields0 =
    Class.class.getDeclaredMethod("getDeclaredFields0", boolean.class);
getDeclaredFields0.setAccessible(true);

Field[] fieldsClassLoader =
    (Field[])getDeclaredFields0.invoke(ClassLoader.class, Boolean.FALSE);

for (Field fldClassLoader : fieldsClassLoader) {
  if ("libraries".equals(fldClassLoader.getName())) {
    fldClassLoader.setAccessible(true);

    Class<?>[] classesClassLoader =
        fldClassLoader.getType().getDeclaredClasses();

    for (Class<?> clLibraryPaths : classesClassLoader) {
      if ("jdk.internal.loader.NativeLibraries$LibraryPaths".equals(
              clLibraryPaths.getName())) {
        Field[] fieldsLibraryPaths =
            (Field[])getDeclaredFields0.invoke(clLibraryPaths, Boolean.FALSE);

        for (Field fldLibPath : fieldsLibraryPaths) {
          if ("USER_PATHS".equals(fldLibPath.getName())) {
            final Field fldUsrPaths = fldLibPath;
            fldUsrPaths.setAccessible(true);

            // get array of paths
            final String[] saPath = (String[])fldUsrPaths.get(null);

            // check if the path to add is already present
            for (String path : saPath) {
              if (path.equals(pPath)) {
                return;
              }
            }

            // add the new path
            String[] saNewPaths = Arrays.copyOf(saPath, saPath.length + 1);
            saNewPaths[saNewPaths.length - 1] = pPath;

            Object unsafe;

            // Unsafe is a hack

            Class<?> clsUnsafe = Class.forName("sun.misc.Unsafe");

            final Field unsafeField = clsUnsafe.getDeclaredField("theUnsafe");
            unsafeField.setAccessible(true);
            unsafe = unsafeField.get(null);

            Method m1 = clsUnsafe.getMethod("staticFieldBase", Field.class);
            Method m2 = clsUnsafe.getMethod("staticFieldOffset", Field.class);

            Object fieldBase = m1.invoke(unsafe, fldUsrPaths);
            Long fieldOffset = (Long)m2.invoke(unsafe, fldUsrPaths);

            Method m3 = clsUnsafe.getMethod("putObject", Object.class,
                                            long.class, Object.class);

            m3.invoke(unsafe, fieldBase, fieldOffset, saNewPaths);
          }
        }
      }
    }

    return;
  }
}

Here's the complete solution: toPDF project (search for addLibraryPath(String pPath))

Above code requires:

--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/jdk.internal.loader=ALL-UNNAMED

for JDK > 14.

VisionX 5.10.851 is out

What a great day!

We're happy to announce VisionX 5.10.851

The version comes with the latest release build of our react user interface and support for our latest mobile application.

We recommend the update because it's backwards compatible and you get all bugfixes which were reported by all VisionX users.

What's new?

The main focus was on bugfixes but we alwo have two new features:

  • Configure a home screen for your application
    The home screen is always shown if no other screen is open.
  • Export a Docker definition for the application without database container

As usual, VisionX 5.10.851 is available in the download area for our customers.
Have fun!

VisionX EA 5.11.50 is available

VisionX 5.11.50 EarlyAccess version is available for all our customers.

The version contains our latest libraries and bugfixes, especially our react UI and flutter UI. Both UIs are included in VisionX 5.11.50.

The mobile Browser previewer is now built with Flutter 3.19.2.

With EA version it's now possible to create a docker container definition file only for the application server. Usually both containers were created as docker compose definition file. The EA version also tries to solve the problem with different database ports for the embedded database. It should just work without limitations.

An EA version is not intended for production use, but is great for development.

Have fun!