Javalobby interview
We talked with James Sugrue from Javalobby (dzone) about JVx. He had some questions about the framework and we talked with him about the next features.
Read the full interview.
We talked with James Sugrue from Javalobby (dzone) about JVx. He had some questions about the framework and we talked with him about the next features.
Read the full interview.
Because of the Plat_Forms competition, we released special versions of JVx, WebUI and OnlineHelp. All releases are available from our project page.
We implemented some amazing new features for JVx and WebUI.
Check out the changelogs for details.
Some tags:
It is available from the project page.
What’s New?
The complete list of changes can be found here.
<application>
<securitymanager>
<class>com.sibvisions.rad.server.security.DBSecurityManager</class>
</securitymanager>
<datasource>
<db name="default">
<url>jdbc:oracle:thin:@localhost:1521:mydb</url>
<username>user</username>
<password>password</password>
</db>
</datasource>
</application>
If the DBSecurityManager does not define a specific datasource, the datasource with the name "default" is used.
on your DBAccess instance.
Configure the objects in your server config.xml like this:
We have implemented a very powerful feature, with which you have full control of your data sent to the data tier. Do you know database triggers?
Now you have the same power in your storages.
A short example:
dbsUsers.eventBeforeInsert().addListener(this, "doEncryptPwd");
dbsUsers.eventBeforeUpdate().addListener(this, "doEncryptPwd");
}
public void doEncryptPwd(StorageEvent pEvent)
{
IBean bn = pEvent.getNew();
bn.put("PASSWORD", AbstractSecurityManager.getEncryptedPassword(
SessionContext.getCurrentSessionConfig(),
(String)bn.get("PASSWORD")));
pEvent.setNew(bn);
}
Use the event handling as usual.
user.setPassword(AbstractSecurityManager.getEncryptedPassword(
SessionContext.getCurrentSessionConfig(),
user.getPassword()));
pEvent.setNew(user);
}
You can work with every useful POJO because the storage mapps only available properties to the POJO.
We look forward to your reviews
The next beta version is planned for Friday, 7th January 2010. It contains some important bugfixes and improvements for DB handling. The default server implementation supports a custom session manager and object provider. And of course we solved some problems of the previous beta.
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:
<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:
dba = DBAccess.getDBAccess(DBSecurityManager.getCredentials(config));
dba.open();
or any connection, by name:
DBCredentials cred = DataSourceHandler.createDBCredentials(config, "masterdb");
dba = DBAccess.getDBAccess(cred);
dba.open();
It is still possible to use the old configuration format:
<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.
DBAccess.getDBAccess(con)
xmnRead.setNode("/archive/element(1)/user", "xml");
xmnRead.setNode("/archive/new/element", "car");
The class offers powerful and simple XML handling - check it out!
We look forward to your reviews
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.
We have a lot of useful features in JVx. It is very easy to develop multi tier applications, two tier applications or simple desktop applications - started as RIA, Web or Standalone application.
Every tier is technology independent and does not require third party frameworks. We can use every useful framework to create business logic.
But we don't have a lot of connectors out-of-the box (at the moment). There are a lot of technologies out there, e.g. NOSQL, Cloud services, Facebook, Twitter, YouTube, REST, ...
Not all technologies are useful for business apllications, but it is a lot of fun to work with new technologies
We spent some hours to develop a simple Twitter client (rather a connector) to read/delete/insert Tweets. The result can be seen here:
What we did?
After 290 lines of code we were finished. The standard RemoteDataBook works perfect with the new Storage (full support for filtering, sorting, master-detail relations).
The last release of JVx - 0.8 - was published on 11th October. But when is the release date of JVx 0.9 and later?
We defined following release cycles for the upcoming versions:
For the JVX Release 0.9, this means:
This is our current schedule.
We are open for discussions to optimize our approach.
Wenige Tage nach der Prämierung wurde nun ein kurzer Bericht über die Veranstaltung, vom Veranstalter GEWINN, verfasst.
Hier geht es zum Bericht.
We made it to the top 40!
SIB Visions GmbH reached the 37th place of the contest "GEWINN Jungunternehmer Österreich - 2010" from 1000 submissions!
Today is party time at SIB Visions
Our Open Source Project "JVx - Enterprise Application Framework" has made it possible!