www.bsiag.com
 

Eclipse Scout Luna – Milestone M6 – two community driven changes

We announced early this year that we had changed our versioning policy. The milestone 6 of the Luna release train is the first having 4.0.0-SNAPSHOT as version number. As usual, with every new milestone some bugs were fixed and new features were introduced.

Eclipse Luna M6 splash screen

This blog post focuses on two new runtime features introduced with this release. They were influenced by Scout users outside of the company BSI. After having gathered the ideas, proposals were presented in the Scout forum to find out about the opinions of other users. The discussions have shown that there was a great interest in the community. Therefore, the proposed ideas had been implemented. This pattern is healthy for an open source project and we hope that it will continue like this.

Read the rest of this entry »

Meeting with Eclipse Scout users

The Scout team recently had the opportunity to meet its community at two conferences. The EclipseCon in San Fransico, USA and the Javaland in Brühl, Germany.

EclipseCon 2014

It is always a pleasure to attend the EclipseCon. It is great to see friends and colleagues of the Eclipse community, to meet new scout adopters and to talk to people that show an interest in what we are doing.

Eclipse Scout Booth (EclipseCon US 2014)

Thomas and Judith presented the new Luna feature on how Eclipse Scout can be used in the Cloud. For this, the Scout Framework has been modified to be able to synchronize Scout sessions across multiple nodes and to handle client notification consistently in such a setup. Great care has been taken to prevent a lock-in on a specific PaaS provider (CloudBees, Amazon WebServices, Cloud Foundry…). For more details, check out this article on TechTarget.

These changes are a good example for the primary goal of Scout: you should be able to focus on your business logic. Technical changes to the setup should not require you to rewrite your application. Instead, the framework should provide meaningful ways to handle such changes as far as possible. For the new cloud support feature this means that the application code remains independent of the fact that the server is running on a local server, on in-house server clusters or an external PaaS infrastructure. The only thing that needs to be changed is the final packaging of the target platform. Depending on the target, the generic services appropriate for that specific platform are included in the WAR file to be deployed.

Eclipse Scout in the cloud (EclipseCon US 2014)

JavaLand 2014 (Germany)

JavaLand is a new conference organized by the different JUGs member of the iJUG federation (JUGs from the German speaking countries). For this first edition, 800 people attended the conference.

On the first day, one of the 7 tracks was dedicated to Eclipse. The Eclipse foundation has selected talk to give an overview from what currently happens in the Eclipse world (JavaFX, internet of things, long term support…).

With the Scout team we happy to take this opportunity to start to present Scout to an audience of Java developers that do not typically attend Eclipse events. We quite liked what we saw and learned at Javaland. So it’s very likely that Scout will start to show up regularly on Java conferences.

Eclipse Scout booth (Javaland 2014)

“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