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

JVx - Maven snapshots

We now provide our JVx nightly via Maven Snapshots. Our nightly build job automatically uploads new JVx snapshots. If you want to use the last JVx snapshot in your project, simply add:

<repositories>
  <repository>
    <id>sonatype-nexus-snapshots</id>
    <name>Sonatype Snapshots</name>
    <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
  </repository>
</repositories>

to your pom.xml and set JVx' version to: 1.2_beta-SNAPSHOT.

If you use our new JVx archetype 1.1.9, simple change the version in the master project:

<properties>
  <jvx.version>1.2_beta-SNAPSHOT</jvx.version>
</properties>

All SNAPSHOT versions contain debugging information. The release versions don't.

VisionX 1.2 Preview - Trial - available

The preview version of VisionX 1.2 is available as Trial version for your desktop. It offers all available features and shouldn't have any problems. The problems on MacOS are solved and it works without problems on Mac OS X 10.6, 10.7 and 10.8.

Simply download the preview version and try it on your own device!

If you already own VisionX, check your download area!

VisionX 1.2 Preview

VisionX 1.2 is planned for Q4/2013, but we'll show you some really cool features of the upcoming version. The current dev version is stable and we have a list of amazing productivity features.

  • An awesome feature is Undo/Redo for UI operations.

    This is a must for great UI design tools.

  • Xls Reporting is another key feature

    Simply create real XLS reports in seconds.

  • Xml Reporting is relevant for M2M communication and is included in VisionX
  • New Form validation support

    Create Forms and validate results with few mouse clicks.

  • Offline data gathering

    Create a XLS or XML report, add records to the created report and import the changed report into your application. This feature is amazing!

  • Liferay Portlet deployment

    Don't waste your time for portlet creation. Use VisionX and create a complete liferay portlet web application archive in seconds. Everything is pre-configured and ready-to-use. Let yourself be surprised.

  • You want More?

    Something like Mobile support and our new Vaadin UI... maybe in the next preview :)

Some impressions

Form validation

Form validation

 
XLS reporting

XLS reporting

Import report

Import report


ALL Features are available in our Cloud preview. Check it out today!

New project: toPDF

We tried to find a simple solution to convert MS Office files to pdf, without online services. We tried OpenOffice but the results were awful! There are a lot of free, and commercial, PDF printers available. But they are for desktops and a user has to print manually. We wanted a solution that works without user interaction.

There is a very useful open source project called PDFCreator. It also is a printer but has a useful API. The API is available via COM, which is not the best technology for Java, but it's also not bad.

We didn't find a ready-to-use solution for our idea and it shouldn't cost money. The solution had to be open source. We found some great commercial tools and SDKs but all of them were not cheap.

We spent some hours and used PDFCreator, Jacob and some other open source tools to create an "Online service for PDFCreator". The result of our work is toPDF.

What is toPDF?

It's a small library that allows conversion of files to PDF, via PDFCreator. It's also a web application that offers services for remote conversion via http. The application has a REST service and a simple servlet service.

Simply POST binary data via http request and receive a PDF in the response. The servlet supports multipart form-data and simple application/octet-stream as requests. The REST service also supports multipart form-data but also JSON requests.

A short example:

URL url = new URL(getServletService());

URLConnection ucon = url.openConnection();
ucon.setDoOutput(true);
ucon.setDoInput(true);
ucon.setUseCaches(false);
ucon.setRequestProperty("Content-Type", "application/octet-stream");
ucon.setRequestProperty("Content-Disposition", "attachment; filename=\"Forms.docx\";");

FileUtil.copy(ResourceUtil.getResourceAsStream("/com/sibvisions/topdf/Forms.docx"),
              ucon.getOutputStream());

byte[] byData = FileUtil.getContent(ucon.getInputStream());

or as Multipart:

MultipartUtil multipart = new MultipartUtil("UTF-8");
multipart.addDataPart("data", "Forms.docx",
                  ResourceUtil.getResourceAsStream("/com/sibvisions/topdf/Forms.docx"));

byte[] byData = multipart.post(getServletService());

The conversion via PDFCreator works great, but not perfect. There are different problems with small page margins in Word documents, problems with OpenOffice documents, ...

The problem is not toPDF, because it works as good as PDFCreator does. If PDFCreator doesn't convert a document, toPDF has no chance to convert it.

We had problems with simple image conversions to PDF because default windows print dialog appeared and we didn't associate image extensions with another tool. We solved the conversion of images with iText instead of PDFCreator. Now it's possible to create PDFs from images very easily without pop-ups.

License?

AGPL 3.0, because PDFCreator is licensed under GPL and iText is licensed under AGPL.

Used tools and libraries

toPDF is a mixture of different open source projects:

PDFCreator
iText
RESTlet
Jackson
JVx
Apache commons FileUpload and IO
Jacob
PDFCreator4J

Installation?

  • toPDF was written in Java, but the installation only makes sense on Windows (same requirements as PDFCreator)
  • Install PDFCreator (default desktop installation, with COM)
  • Deploy topdf.war on Tomcat or JBoss or your preferred Java application server. If your application server runs as windows service, be sure that it runs as OS user.

What's JVx in 2013?

JVx was started in 2008 as simple library for application development. The focus was on technology independce. It shouldn't matter which technology will be used in the future. In 2008, Swing was first choice for Java applications. In 2014, it will be JavaFX. JVx was designed to solve technology problems. It's not only a library, it's a full-stack-framework - an all in one solution for application development. But it's still a simple libray. There are no dependencies between the different application layers. Only use the persistence or an UI control or some utility classes. JVx is the right choice.
The big advantage of JVx is that it's API is simple and doesn't hide underlying technologies. Be technology independent or not - it's your decision!
The architecture is clean and easy to understand. The codebase is small and the source code meets the highest quality requirements. JVx is not only open source software, it's professional open source software.

What happened in the last few years with JVx?

We had some plans for JVx. The first was a core library for super-fast application development. This library is known as JVx. The other plans were about mobile applications, and different UI implementations like QT, GXT and a headless UI technique for automated tests. Of course, during recent years we played around with many libraries and frameworks like Pivot, GWT, vert.x, POI, ewsAPI, JasperReports, Birt, RAP, Jspresso, xdev, etc.

The result of our hard work is a framework that allows application development for desktop applications, web applications and mobile applications. BUT, the big difference to ALL other "hybrid" frameworks is that we write the application once and the same application runs without changes on ALL platforms.
JVx is a single-sourcing framework as well! Oh, and JVx is the only Java framework that allows a seamless integration in Oracle Forms.

We don't know a framework on this planet which is like JVx. It's small, it's simple, it's powerful, it's Open Source, it's professional, it's amazing.

Sounds unbelievable?

Maybe, but convince us that the opposite is true.

We know that JVx is not the solution for all problems because it was designed for database application development and not for other things. It's not a good idea to create a web-shop or a role-playing game with JVx. There are better tools for that. But if you develop backend applications that needs (or not) a modern web frontend and access with mobile devices, than JVx is your friend!

During the last few years, we had as much fun as possible. We put all our know how and time in JVx and we know that our vision will be reality! We show you two images that explains a little bit better what JVx covers

JVx' 2013

JVx' and independent projects

Above image shows projects built on-top of JVx. Following image shows what JVx - as library - supports. The list is not too detailed, but you should get an idea.

JVx' features

JVx' features

Our next steps?

The framework itself is great, but we need more documentation. We can't write as much howtos, intros as you need but we do our best. With JVx, we solve many problems but you don't know which ones without documentation. This is the biggest howto for 2013.

Another challenge is our JavaFX UI. We are working on it!

The next important milestone is the 1.0 Release of our vaadin UI. It's already code complete but we are still reviewing... be patient if you won't build on your own.

Rolladen steuern mit Pi

RasPi mit Fernbedienung   Im aktuellen JavaAktuell wurde ein Artikel über die Ansteuerung von Rolläden mittels Raspberry Pi veröffentlicht. Bei JavaAktuell handelt es sich um ein Magazin des iJUG (Interessenverbund der Java User Groups). Das Magazin richtet sich an Java Entwickler und die Artikel werden von Anwendern, die spezialisten in Ihrem Gebiet sind, verfasst.

Wer die aktuelle Ausgabe noch nicht in seinen Händen hält, kann hier schon mal in den Artikel reinlesen.

More class diagrams

We have more class diagrams for you. They should help to understand how JVx "thinks".

The first one shows the persistence (server-side):

JVx Persistence

JVx Persistence

You work with our generic model (client-side) to access data:

JVx Generic model

JVx Generic model

and use conditions to filter data:

JVx conditions

JVx conditions

And the last one shows the application architecture with JVx' default implementation:

Application

Application

JVx UI class diagram

We got a lot of requests regarding a JVx UI class diagram. We didn't have one, because we thought that our javadoc is a good starting point. But you need it, and here it is.

JVx UI

JVx UI

JVx Vaadin UI 1.0 is code complete

Our new UI implementation for JVx is code complete. We did implement all necessary JVx interfaces and many cool features. Compared to our old web UI, based on GXT (extJS), the new one is back to the roots - back to Java. We use Vaadin 7 as rendering engine and are happy with the Apache 2.0 license.

The old web UI didn't have a tree implementation and the chart engine was based on Flash. Our new JVx Vaadin UI has a tree implementation and it supports Vaadin charts. Oh and another cool thing is the out-of-the-box support for mobile devices. This wasn't really cool with old web UI.

I wanna show you some screenshots with a really cool JVx application:

Charts

Charts

 
Tree

Tree

The application is a JVx application but with some CSS.
The same application - as desktop version, looks like a standard swing application (started with Swing launcher):

Charts (swing)

Charts (swing)

 
Tree (swing)

Tree (swing)

We didn't change the source code of the application to run it as Vaadin application and as Swing application. The only difference was the configuration via web.xml for Vaadin and start parameters for swing.

The source code of JVx Vaadin UI is available, but we need some time to review the code before we release the binaries.

Mein KMU bei Überall App Competition

Demnächst findet der erste App Kongress in Wien statt. Mit zur Veranstaltung zählt auch eine App Competition. Dabei werden aus einer Menge an App Ideen bzw. Konzepten die Top 10 ermittelt. Die Top 3 haben dann die Chance auf einen 3 Minuten Pitch und Crowd-Funding.

Unser R&D Team hat ebenfalls eine App Idee am Start, mit der erstmals unser JVx mobile zu sehen ist. Die Idee hat natürlich mit Business zu tun:

Eine App für kleine und mittlere Unternehmen (Handwerker, Dienstleister, Einzelunternehmer, .). Für diese gibt es kaum hilfreiche Apps und Kapital für die Umsetzung eigener Ideen ist meist nicht vorhanden bzw. wird an anderen Stellen benötigt.

Die App ermöglicht die Umsetzung eigener Ideen wie zB. Lagerstandsabfrage, Zeiterfassung für Monteure, mobile Angebotslegung, Preisabfragen, uvm. Damit die Daten auch im Büro eines KMU zur Verfügung stehen und verwendet werden können (zB. für Rechnungeslegung) kommuniziert die App mit einem Backend das entweder in der Cloud oder auf eigener Hardware läuft – je nach KMU. Das KMU erhält somit eine Kombination von Excel und Word das online zur Verfügung steht und angepasst ist an die eigenen Abläufe. Die App ist aber keine simple Dateiverwaltung wie z.B. Dropbox sondern verwaltet Unternehmensdaten in einer zentralen Datenbank. So einfach wie Excel.

Die App passt sich dynamisch an die zu verwaltenden Daten an und bietet eine Standardlösung für KMU.

Und natürlich gibt es auch ein Bild dafür:

Mein KMU

Mein KMU

Damit eine Idee unter die Top 10 kommt muss sie zuerst durch eine Community Bewertung. Die besten 33 Ideen werden dann noch von einer Jury unter die Lupe genommen. Wir würden uns natürlich freuen wenn Ihr uns unterstützt. Aber bitte Geduld bei der Bewertung, denn der Battle Modus ist etwas gewöhnungsbedürftig und es kann auch schon einige Versuche dauern bis "Mein KMU" antritt :)