www.bsiag.com
 

“Ignore Issues on Multiple Criteria” in SonarQube

I am currently helping a customer to setup a configuration of his SonarQube instance in order to monitor the code of a Scout Application. SonarQube is a great tool to monitor code quality continuously and to fight against technical debt.

SonarQube Logo

We started with the default set of rules (called “quality profile” in SonarQube). This was done because we trust the SonarQube team that knows what is important when it comes to the quality of a Java project. Additionally, the source code that we consider to be acceptable should not be marked with any violations when analyzed with SonarQube. On new projects, if you cannot maintain a zero warning state, over the time nobody will look at the error dashboard anymore. The team treats each new violation as false positive, and at the end the quality of the code will decrease.

We had a problem with rule squid:S00112. This rule ensures that generic exceptions are not thrown. This is a good principle, but we got violations of this rule in each Activator classes in our code.

Read the rest of this entry »

Dynamic Working Sets: another way to define working sets

While working with the workspace containing the Scout demo applications, I have a lot of projects inside. The Scout Explorer presents a logical representation of each application. However, to access some files (like the MANIFEST.MF file) you have to use the Package Explorer View.

Explorer Views

A possibility is to group the projects corresponding to one demo application into a separate working set.

Of course you can work with PSF files (we have started to propose PSF files for each application), but there are still a lot of manipulations needed to import them correctly into the workspace. (See our current how to Download and Run Locally the Scout Demo Application).

During the last EclipseCon Europe I was told that a couple of good tools were provided by the CDO project. Dynamic working sets is one of them. It allows to define rules, to assign projects into a working set. Rules are based on predicates describing the project (name, pattern, nature, builder, file …) and logical operator predicates (and, or, not…).

Read the rest of this entry »

Local p2 mirrors to work offline

Working with Tycho without an internet connection?
=> Make a local mirror of the p2 repositories.

I was asked to create a maven tycho build for an existing scout application in a company where it was difficult to reach the eclipse repositories. Do not ask me why, I guess this has something to do with proxy, firewalls and so on…

This was really frustrating because I could see the plugins in my target editor, but during the maven build there was a lot of warnings that maven will contact another mirror and finally I got some timeout errors.

default_target
Read the rest of this entry »

Working with version=”0.0.0″ in your target platform?

At BSI (the company behind the Eclipse Scout project) we are working with the version attribute set to “0.0.0″ in some of our target platform definitions.

xml file

<location includeAllPlatforms="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.scout.feature.group" version="0.0.0"/>

<repository location="http://download.eclipse.org/releases/kepler"/>
</location>

Setting the version to “0.0.0″ means that we want to get the last available version of the installable unit (features or plugins). For example: the feature org.eclipse.scout.feature.group was 3.9.0.20130612-0904 last summer and is now 3.9.1.20130918-0824 and will become something like 3.9.2.xxxx when Kepler SR2 gets released.

This works well, but we are experiencing some difficulties:
Read the rest of this entry »

Scout Mobile Applications

One of the most notable features of the Scout Kepler release is the support for mobile applications. Scout’s mobile support is based on Eclipse RAP adding an (optional) device transformation component. This component adapts widgets to the target device at runtime.

Let us use the small bug viewer as an example application to show the out-of-the box mobile support provided by the Scout package.

ibug_samsung_mibug_samsung2_m

 

The client application consists of a single form that lists the most recent bugzillas for a given project and assignee. In the Scout SDK, the complete UI model of the form looks as follows.

ibug_sdk_m

Comparing the model with the mobile screenshot  (shown on the left) we can observe, that the table field is actually rendered as a list. Instead of showing the content of the 10+ columns defined in the model, the content of the first three columns is presented in each list item. Once the user touches a list item a form containing the content of all defined rows is presented (shown on the right mobile screenshot).

The main benefit of the example shown above is the possibility with Scout to write business applications that run on mobile browsers and as desktop applications with the same code base. Below, the same application is shown running with Scout’s SWT UI rendering component.

ibug_swt

To play around with the iBug application you can get the sources from Github. Please don’t complain about the parsing of Bugzilla HTML content on the server, I have been fully convinced that this is bad. But – so far – nobody did step forward and provide an alternative implementation doing it properly.

In case you are new to Scout you may want to read the related article in the Eclipse Newsletter (you should be able to have a running hello world in less than 30′).

Scout Links: Project Home, Forum, Wiki, Twitter

UI Widgets of Eclipse Scout

To build user friendly applications efficiently, Eclipse Scout includes a comprehensive set of user interface (UI) widgets and a powerful layouting model.

As the Scout widgets are modeled independently of a specific UI technology, the graphical user interface is rendered at runtime. Currently, Scout rendering componets are available for desktop applications (using Swing or SWT), web applications (Eclipse RAP) and for mobile devices (Eclipse RAP).

The Scout UI widgets are now also showcased in a new widget demo application. You can either get the code from this clone URL or try the widget application live on Cloudbees as a web application, and optimized for tablets and mobile phones. For these applications, the Scout’s rendering component for Eclipse RAP is used.

widgetdemo

In the demo application, each UI component has an associated form, that is shown when clicking on the node in the tree. As for the DateField node shown above, the form can also be displayed in a dialog using context menu “Open in a dialog” defined on the nodes.

widgetdemo2

As a second option, the “View source on Github” sowhs the source code for the selected form  in a second browser window.

widgetdemo_source

Be aware that the demo application is still rough around the edges. But while the Luna release progresses, the widget demo application will be refined step-by-step.

Scout Links: Project Home, Forum, Wiki, Twitter

The Eclipse Scout Book (Kepler)

As part of our Scout Roadmap announced last November we have started working on the Eclipse Scout book.

scout_book_m

As part of the deliverables with the Kepler release train, the first version of the Scout book is now freely available for download.

This first (and still rough) version of the book provides a reasonable introduction into the Eclipse Scout framework. To allow for external contributions from the Scout community, the book’s setup has been designed to invite collaboration. Over time – and with each new Scout release – this book is intened to be updated and extended to cover more aspects with every release.

To play with the sources of the examples in the book, just fork the book setup on github and find the example Eclipse workspaces in the sub folders of the code directory.

Scout Links: Project Home, Forum, Wiki, Twitter, Instagram

Creating Word Reports with Scout 3.9 (Kepler)

Scout 3.9 comes with the option to add Docx4j Support to a Scout application. This Docx4j support is available on the Eclipse Marketplace and allows for easy creation of Word and Excel files from within a Scout application.

As a small example have a look at the new how-to that describes loading of a Word template file, filling in doc variables and table data and generating the final report as a Word document.

docx4j_report_generation

The following code taken from the how-to is responsible to fill in the data into a Word template file and creating the output Word document.

Scout Links: Project Home, Forum, Wiki, Twitter, Instagram

Thanks for attending the Democamp in Zurich

Last week June 27th, the Eclipse community in Zurich gathered for the 2nd Eclipse democamp in Zurich.

scout_tutorial

Prior to the democamp, we offered a Scout introduction to build a small Scout application.
The participant were working with their laptop computers implemented their first Scout application from scratch.

deomcamp_audience

At 5.30 PM the sessions started at the main building of the ETH in HG D 1.1.

tom_efxclipse karsten_spray serano_mindstorm lorenzo_xbasextext

Tom Schindl was the first presenter. He started the demo camp with showing off the possibilities of JavaFX in various use cases. Desktop, embedded and even mobile.
Next was Karsten Thoms with Spray, an effort to create a set of DSL to define Graphiti based graphical editors. Dietmar Stoll presented the Xtend active annotation feature and Serano Colameo had his Minstorm robot dance to the tune of his Lego DSL. In the last session before the break Lorenzo Bettini demonstrated how to use Xbase to create Java like languages.

mike_m2m andy_scout rene_democamp

After the break, Mike Milinkovich talked about machine to machine (m2m) Eclipse projects and would have loved to run his many gadgets live. Unfortunately the infrastructure was not up to the desired setup – but we will work on this and might get Mike back again next year for this demo. In the next session Andreas Hoegger and Matthias Zimmermann demoed the new Eclipse Scout features, building mobile applications with Scout and writing large, modular applications. In the last session René Eigenheer presented the lessons learned from a real life project setup integrating Scout, Spring and Hibernate to modernize a legacy business application.

beer

And finally, everybody got his/her well deserved beer.

Thanks again for attending, speaking, and/or sponoring! See you again next year :-)

Eclipse Scout in a nutshell

Eclipse Scout is the perfect choice for an open source business application framework. It is simple to learn and substantially reduces development time for client-server software. User-friendly applications are easily implemented with Scout’s comprehensive set of user interface components. Completely based on Java/Eclipse, Scout applications integrate well in existing IT environments.

http://www.bsiag.com/en/technology/eclipse-scout.html

scout usp