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

VisionX - Jar signing support

Today we've some great news for you!

Our upcoming Release of VisionX will support jar signing.

Global keys

Global keys

 
App keys

App keys

Jar signing?

This is a long story, but in short: Since latest JDK 1.7 releases, Oracle introduced a new "security feature". The new feature is available via Java ControlPanel, Security tab. There are different security options like Medium, High, Very high. If you're using default setting (high) it's not possible to start Applets in your Web browser or JNLP applications via Webstart. If you change the default setting to medium, it'll be possible to start applets and JNLP applications but a big warning dialog will appear. This dialog contains a lot of security information and bold red letters. Red is always a bad color for users, because it stands for danger.

This new security feature made it impossible to use VisionX' (Java in Broser) live application preview, because no one changed the default security.

We tried to find some workarounds but didn't find a real solution. The best choice was jar signing support directly via VisionX, but end-user capable.

The bad news: It was hard work ;-)

The good news: It's working!

VisionX will contain a self-signed Java certificate per default. No worries, you can add your custom/official certificates!
The default certificate is only for application tests and should never be used for productive applications.

Sign information

Sign information

It won't be possible to use Applets or JNLP Webstart applications with current and upcoming JREs without signing. So the only chance for VisionX was a self-singed certificate.

VisionX with AddOn support

Our next release of VisionX will contain support for custom AddOns.

What is an AddOn?

It's like a plugin, module, extension, ...
An AddOn can extend VisionX with custom libraries, custom configuration files, custom templates.
It configures YOUR VisionX.

One example is a custom application template. Create your own application and extend new applications from your own template. Use custom Login screens, custom background images and custom security managers. Everything will be possible with AddOns.

A new screen will be available for AddOn management:

AddOns

AddOns

The feature already is available in our automatic builds!

JVx' new Controller/Controllable - old school record navigation

Our upcoming release of JVx - version 2.0 will provide a nice new feature. It's a special record navigation for databooks. If you know Oracle Forms applications you should know what I'm talking about. For all others, a snippet from an Oracle Froms application:

Oracle Forms Navigation

Oracle Forms Navigation

We'll support similar navigation via JVx for our databooks without changing your whole application:

JVx Navigation

JVx Navigation

To support this old-school record Navigation, we introduced two new interfaces (IController and IControllable). If you need more details, read the Feature Request.

You should know that your existing applications won't change automatically. JVx has full support for new navigation but doesn't implement a UI for it. If you want to use it, you have to add your own controls like:

In your application init method:

UIButton butIns = new UIButton("Insert");
butIns.setImage(UIImage.getImage(UIImage.ADD_SMALL));
butIns.eventAction().addListener(this, "doInsert");

registerCommandButton(IControllable.COMMAND_INSERT, butIns);

And that's all you need. Don't change your screens or your UI controls. Everything will work out-of-the-box.

The event receiver should be an instance of javax.rad.application.genui.ControllerContent. Our Application javax.rad.application.genui.Application and javax.rad.application.genui.WorkScreen are ControllerContents. So it's very easy to use existing actions. All available actions are defined and implemented in ControllerContent, like

public void doInsert()
public void doEdit()
public void doDelete()
...

If you want to know the current state of an action command, simply ask:

isCommandEnabled(IControllable.COMMAND_INSERT_SUB);

If you want a different handling than already implement, simply overwrite the method

public void doConfigureCommandButtons()

and do whatever you want, e.g. hide buttons instead of disabling:

butInsert.setVisible(isCommandEnabled(IControllable.COMMAND_INSERT));



No worries, we still prefer record navigation directly on the UI control:

Control Navigation

Control Navigation

because it's easier for end-users to find the right buttons.
But especially Oracle Forms users will love the new Feature :)

VisionX Enterprise for developers

We made some smaller changes to VisionX that supports developers in their daily work. The first improvement is that database connection messages will be developer friendly (original message) instead of user-friendly (simple language). It'll be easier to debug VisionX applications because we've added debug information to included Open Source projects like JVx, JVx.vaadin, ...

VisionX enterprise comes with source code of our Open Source projects like JVx and JVx.vaadin. The source code matches the binary versions, used in VisionX, and a developer has exactly the same code to debug problems. It was possible to get the source code from our sourceforge project site, but you didn't know the exact revision.

We've also added VisionX API jar and javadoc archives to enterprise VisionX. That makes it easier to develop modules or AddOns (will be a new feature in upcoming releases).

VisionX integrates pgAdmin III

With VisionX 2.0 it'll be possible to access the embedded database directly with an integrated database editor. We use an existing tool with the name pgAdmin (see developer site). It's a very popular tool, especially for PostgreSql users.

Here's a screenshot of the integration

pgAdmin III

pgAdmin III

The tool will be available in every application and the menu item will be available in Edit menu.

The tool pgAdmin is open source and was not developed by SIB Visions! It was integrated for better database support and for all database lovers.

VisionX 1.2 preview III

VisionX 1.2 will be VisionX 2.0 because it's more than just a minor update. It's too powerful for 1.x and has awesome new features. We have so many new features and didn't release smaller version updates... but we started with weekly builds for our customers in decemter 2013.

Most of our customers have access to early release versions with all available features. This is not usual for product development companies, but we develop high quality software and take the risk :)

We've releasd a bigger update of VisionX with the version number 1.2.136 in december for all our customers. So please check your download areas.

Some new features for the next weekly build will be:

  • New data editor
    Edit a dataobject The new data editor supports more than one column in drop downs. It offers an advanced mode for customization of column names, table names and datatypes.

    It's powerful but still as simple as the old one.

    This thing rocks!

  • Templates for new applications
    Application template It'll be possible to create templates for new applications.
  • Templates for new work-screens
    Workscreen template It'll be possible to create templates for new work-screens.
  • Screen template with header and footer
    Header and Footer VisionX includes a custom screen template that has a header and footer panel.
  • New customizer for fixed screen size
    Fixed size It's possible to set a fixed size for a screen.
  • New customizer for styled screen
    Customizer It's so easy to customize the new screen template.

We have more amazing features, that covers reporting and new JVx features. If you have access to VisionX' nightly builds, simply check the changelog of VisionX and ProjX for details.

Last releases in 2013

First of all, we don’t have JVx 2.0 for you. We planned it for 2013 but it wasn’t possible to finish everything.

We made some smart design decisions and put more time in our vaadin UI (especially push support) and our Liferay integration. Especially LR integration is now incredibly good. We support Live Preview of work-screens without deployment. It makes developers happy!

Sorry for the delay, but we have some nice extra features for 2.0 in the queue like buffer caching for queries.
Our plan is that JVx 2.0 will be released together with VisionX 2.0. This will happen in Q1/2014.

But don’t be sad. We have a new JVx release for you. It’s 1.2.1 (see Changelog). We also have Vaadin UI 1.1 for you (see Changelog).

VaadinUI 1.1 was built with vaadin 7.1.7. The current vaadin version is 7.1.9. We'll update to the latest vaadin with vaadin UI 1.2.

Both releases will be available on 24.12.

Merry christmas ;-)

JVx' Liferay integration

Our vaadin UI implementation is ready for Liferay portals because vaadin has built-in support for portlets and we added some magic to our UI implementation. With our last integration project we made it possible to run a JVx screen without changes as Liferay portlet. It was amazing but there was a limitation to one screen. It wasn't possible to open screens from the portlet itself, because we didn't implement this feature.

With our current implementation, we support whole applications running as portlet. It's possible to open other screens directly from your portlet. It's also possible to navigate between screens but with full JVx security mechanism (which is directly connected to Liferay security). Now it's really amazing:

We have two screenshots for you. The first shows the embedded variant with two opened screens, but only one screen is visible. It's possible to navigate between screens via navigation links. The second one shows the window variant. Every new screen will be opened as separate window.

Screen embedded

Screen embedded

 
Screen as window

Screen as window

Vaadin push and JVx callback

We fully support Vaadin' push support with current JVx *nightly* builds (see JVx with vaadin UI and server-side push). We had some problems with manual push mode because of some strange implementations of atmosphere in vaadin. We found a better solution to be independent of vaadin changes (should work with 7.1.8 and later).

No we automatically push if you use standard threads or threads, created via VaadinFactory. It's also possible to use JVx' callback mechanism for push operations. If you won't use threads in your client application, simply make an async server call. The server implementation automatically starts a new thread and executes the task. The server will notify the client after the task is finished. This is a little bit strange because client and server run on the application server, if you use our vaadin UI. If your JVx client retrieves the result of an async call, it will automatically push the results to the vaadin client. This makes the whole application very smart and live.

It's very easy to work with async calls in JVx. Simply use a callback listener:

getConnection().callAction(new ICallBackListener()
{
    @Override
    public void callBack(CallBackEvent pEvent)
    {
        butCallBack.setImage(IMAGE_YESNO);
    }
},
"asyncServerAction");

The server method in Session LCO:

public int asyncServerAction() throws Exception
{
    Thread.sleep(5000);

    return ++count;
}

We didn't change JVx' APIs to support vaadin push. It works behind the scenes and we simply love it.

Use our nightly builds to see how it works.

Nightly build binaries

We build all our OSS projects automatically every day, but only JVx binaries were available for download so far. We wanted to let you know that we added JVx.vaadin and JVx.help to the nightly-build download area. Check https://dev.sibvisions.com/jvx.nightly/ to get access to our nightly build binaries.

Currently we only push JVx snapshot binaries to maven central, but we'll do the same with JVx.vaadin or online help in a few weeks. So keep reading this blog to get the latest news or follow us on Twitter.