JVx 0.9 beta-1 is available

Post to Twitter

Check out our new JVx version. It is available from the project page.

What's in the current beta?

The complete list of changes can be found here.

Some features, however, at this point:

  • Introduced DBCredentials and DataSourceHandlerIt is now possible to configure multiple db datasources via config.xml
    <?xml version="1.0" encoding="UTF-8"?>

    <application>
    <securitymanager>
    <class>com.sibvisions.rad.server.security.DBSecurityManager</class>
    <database datasource="mydb" />
    </securitymanager>

    <datasource>
    <db name="mydb">
    <url>jdbc:oracle:thin:@localhost:1521:mydb</url>
    <username>user</username>
    <password>password</password>
    </db>
    <db name="masterdb">
    <url>jdbc:derby://localhost:1527/masterdb</url>
    <username>master</username>
    <password>master</password>
    </db>
    </datasource>
    </application>

    and use the configured security manager connection in the Session:

    IConfiguration config = SessionContext.getCurrentSessionConfig();

    dba = DBAccess.getDBAccess(DBSecurityManager.getCredentials(config));
    dba.open();

    or any connection, by name:

    IConfiguration config = SessionContext.getCurrentSessionConfig();

    DBCredentials cred = DataSourceHandler.createDBCredentials(config, "masterdb");

    dba = DBAccess.getDBAccess(cred);
    dba.open();

    It is still possible to use the old configuration format:

    <?xml version="1.0" encoding="UTF-8"?>

    <application>
    <securitymanager>
    <class>com.sibvisions.rad.server.security.DBSecurityManager</class>
    <database>
    <driver>org.hsqldb.jdbcDriver</driver>
    <url>jdbc:hsqldb:hsql://localhost/demodb</url>
    <username>sa</username>
    <password></password>
    </database>
    </securitymanager>

    You can create DBCredentials or read the config programatically, as it was with JVx 0.8.

  • Introduced AbstractCachedStorageThe AbstractCachedStorage is the new base class for all IStorage or ICachedStorage implementations. It implements the metadata caching and offers simple export functionality. With this class it is easy to develop new storages.
  • Introduced AbstractMemStorageThe AbstractMemStorage extends the AbstractCachedStorage and offers a MemDataBook on the server-side. With this class it is very simple to create storages with data kept in memory. You don't need a special backend, e.g. you can use a List to fill the storage. Our TwitterStorage uses this storage.
  • DBAccess supports pre-configured java.sql.ConnectionCreate a DBAccess instance with a pre-configured connection, e.g.
    Connection con = getJNDIConnection();

    DBAccess.getDBAccess(con)

  • XmlNode performance tuningOur XmlNode allows XML access with following syntax:
    XmlWorker xmw = new XmlWorker();
    xmnRead = xmw.read(new FileInputStream("example.xml"));

    xmnRead.setNode("/archive/element(1)/user", "xml");
    xmnRead.setNode("/archive/new/element", "car");

    The class offers powerful and simple XML handling - check it out!

  • Bugfixes and Test cases

We look forward to your reviews ;)

JVx documentation update

Post to Twitter

We described all DataBook events and row states with some articles in our Forum. The events and states are very important if you need special data/row handling on client side e.g. ask the user before delete record(s).

The articles includes flow charts and practical examples. If anyone has questions, just post to the forum.

Direct links to the events and states.