Treasures
JVM technologies for 2011 - Voting
Very interesting postings, and yes - JVx is ready for Desktop Applications
JVM technologies for 2011 - Voting
Very interesting postings, and yes - JVx is ready for Desktop Applications
Some days ago, we updated our showcase application and especially the WebUI implementation.
But what is new?
Our WebUI has some great new features, in addition to our Plat_Forms release.
Check out the Help menu - the help is now embedded in the application. Another great feature is the download option for grids - press the small export button beside the grids. Or try uploading an image in the contacts screen - works great
Smaller changes are grid specific, e.g. the sort operation is now a remote operation, same for inserting new lines.
We welcome your feedback!
Our showcase application was updated with the latest versions of JVx and WebUI. It demonstrates the new simple charting, global meta data caching and a lot of new features of WebUI, like Upload or Help integration.
The Plat_Forms contest 2011 is over. We are proud to have participated.
Working together was really fun:
The task (Conferences and Participants) was very interesting and we tried to use our JVx WebUI for the implementation (somewhat riskily, but an interesting challenge).
The user interface was not a real problem, of course the WebUI needs some additional features, but it is ok. On the other side, we had problems with the REST service implementation because we tried to solve it very dynamic, to be reusable for JVx.
But there was not enough time to finish the implementation. And last but not least, we damaged the REST authentication during the last possible deployment. That means that our REST service does not work - very frustrating... but we had a lot of fun.
We know that our solution has some problems, but the usage of the framework during the whole contest was really fun. And we used our single sourcing mechanism for development: We developed with our Swing Launcher and deployed the app as Ajax/HTML application - it worked great.
We give a first insight into our result (the design did not matter):
The Web interface is competitive, even if it was not designed for the creation of content management systems:) For classical web development, we need a different application style, but that has nothing to do with the technology behind.
Now we look forward to the results of the Jury.
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.