Eclipse Newsletter - LocationTech: for Place and Purpose

December 18, 2015 03:22 PM

The december issue of the Eclipse Newsletter is now available. Read it while it's hot!

December 18, 2015 03:22 PM

Eclipse Community Awards 2015

December 15, 2015 04:33 PM

We are now accepting nominations for the Top Committer and Top Newcomer Evangelist awards for 2015.

December 15, 2015 04:33 PM

Announcing the Open IoT challenge

December 15, 2015 02:33 PM

We launched a programming contest that fosters the creation of IoT projects based on top of open-source technologies.

December 15, 2015 02:33 PM

Announcing Sapphire 8.1.1 Release

by Konstantin Komissarchik (noreply@blogger.com) at December 19, 2014 04:06 AM

On behalf of all who contributed, I am very proud to announce the availability of the Sapphire 8.1.1 release. This releases includes a fix for an issue preventing the scale property editor presentation from being used along with a fix for a NullPointerException that occurs under certain circumstances when creating Java types from an action in a table cell editor.


by Konstantin Komissarchik (noreply@blogger.com) at December 19, 2014 04:06 AM

Open IoT Challenge FAQ

by Benjamin Cabé at December 18, 2014 02:22 PM

The feedback following the announcement of the Open IoT challenge has been fantastic! The good news is that we’ve already improved the prize pool, and we are also happy to announce that the best applications will be eligible to get $150 worth of hardware parts required to build the final project. Thanks to our sponsor Eurotech for making this possible!

Several people have contacted me with questions so here is a little FAQ to clarify some of the conditions to participate.

Can I use a commercial product as part of my project?

Yes, of course! With this challenge we want to help demonstrate that there are really cool commercial IoT products out there that can really benefit from the ecosystem of open-source libraries and frameworks. If you know of a great commercial MQTT broker and want to use it to send your sensor data, that’s fine! If you want to hack a Nest thermostat to hook it to an open-source data analytics frameworks, that’s fine too!

Are there any publicly available IoT data sources that I could use?

There are many data sources that you may want to try and use as part of your project. The Google keyword here would of course be “open data“. Many cities are starting to make available the current position of their buses, the pollution levels, etc. You can for example have a look at the air quality of the city of London thanks to the London Air API. There are also many “offline” data sources (OpenStreetMap, geotagged Flickr pictures, etc.) that you may want to feed in your system to provide better data visualization, or to correlate environmental data with data coming from your sensors.

When is the deadline to participate?

You have until January, 17th to apply by filling the dedicated online form. If you are short-listed, your final project will have to be completed by February 27, 2015.

If you have more questions, please feel free to comment on this blog post or drop me an email using the contact form.


by Benjamin Cabé at December 18, 2014 02:22 PM

Book “Distributed Version Control with Git” published in the third edition

by Lars Vogel at December 17, 2014 10:37 PM

I’m proud to annouce that I finally managed to release the third edition of my Distributed Version Control with Git – Mastering the command line book has been released.

The book has grown in size, it is 1/4 larger than the last edition. A big thanks goes to Robin Stocker and Alex Blewitt for providing feedback on this edition.

Git book cover


by Lars Vogel at December 17, 2014 10:37 PM

OS X Eclipse Launcher 2.0 released

by Torkild at December 17, 2014 09:44 PM

When the better looking Eclipse Marketplace was announced earlier today I got a nice reminder that I had forgot to announce the new version of the OS X Eclipse Launcher. It’s a fairly popular tool, currently ranking at 168 of 804 products available at the marketplace, with between 170 and 359 installs each month for the past year. So I did try to be extra careful when I released the new version. Of course something broke and I had to do a respin, but it looks all good now and I have had no complaints as of late, so please go on and upgrade if you haven’t already.

Besides a rewrite of much of the code to make it more maintainable and better suited for supporting other platforms (no promises), I added one new feature, the Advanced… dialog. This allows you to specify a few more unusual arguments for starting a new Eclipse instance. The obvious one is which workspace to use, and also which JRE to use. I guess most will go for the latest and greatest here but it can be useful for testing your Eclipse installation on a different JRE.

There are also options for memory settings and remote debugging. The latter can come in handy when you discover what you think is a bug in your running Eclipse instance. You can then start a new instance and try it out. I have to admit I’ve only had need for that feature a couple of times myself, but that’s why it’s called the “advanced dialog”.

The last option is for disabling font size reduction – this can come in handy when you’re doing a demo and want the letters to be bigger without having to tweak the workspace preference settings.

One benefit in this approach is that you won’t have to edit the eclipse.ini file. That would invalidate the signature for the Eclipse Mac OS X application bundle and cause some trouble. There is a discussion in the Eclipse Bugzilla to change the location of eclipse.ini.

Thanks goes out to Marcel, Doug, Maarten and everyone that has provided bug reports. In the next version I’m planning to add support for the -clean option and maybe also persist the settings per workspace. What do you think?


by Torkild at December 17, 2014 09:44 PM

Top 10 IoT Hardware Platforms in 2014

by Benjamin Cabé at December 17, 2014 04:57 PM

<div class="plus-one-wrap" style="text-align: right"><g:plusone href="http://blog.benjamin-cabe.com/2014/12/17/top-10-iot-hardware-platforms-in-2014"></g:plusone></div><p>This year, a lot of IoT hardware platforms have been released, and all the semiconductor companies have finally started getting really serious about providing affordable development boards showcasing their portfolio of processors and sensors.<br /> Here are the devices that particularly caught my attention, with some links to additional educational material.</p><div style="max-width: 700px;" class="metaslider metaslider-flex metaslider-1826 ml-slider"><div id="metaslider_container_1826"><div id="metaslider_1826"><ul class="slides"><li style="display: block; width: 100%;" class="slide-1814 ms-image"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/483d41d364cb4babb53fd87eddd7555e-371x318.png" height="600" width="700" alt=" FRDM-K64F" class="slider-1826 slide-1814" title=" FRDM-K64F" /><div class="caption-wrap"><div class="caption"><h1>#1 – FRDM-K64F</h1>The FRDM-K64F is a development board for the Kinetis K64. Freescale had the great idea to not only make the platform compatible with the ARM mbed platform, but also to provide a board that is compatible with Arduino shields.<br /> Since a few months, you can also <a href="https://docs.oracle.com/javame/8.1/get-started-freescale-k64/install.htm" target="_blank">install a Java ME embedded firmware on the FRDM-K64F</a>, turning it into what is probably the cheapest Java development board on the market.</div></div></li><li style="display: none; width: 100%;" class="slide-1828 ms-image"><a href="http://www.seeedstudio.com/wiki/GROVE_System" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/Grove-Starter-Kit-V3-612x525.jpg" height="600" width="700" alt="Seeed Grove" class="slider-1826 slide-1828" title="Seeed Grove" /></a><div class="caption-wrap"><div class="caption"><h1>#2 – SeeedStudio Grove system</h1><em>"It seems that perfection is attained, not when there is nothing more to add, but when there is nothing more to take away."</em> <br />The Grove platform from SeeedStudio does just that. Their simple yet very smart connectors have become the standard platform for connecting IoT sensors. There is a huge list of sensors and actuators using the Grove standard connector, and you can literally hook Grove devices to anything, from Arduino to Raspberry Pi to Beaglebones thanks to the many shields available on the market.</div></div></li><li style="display: none; width: 100%;" class="slide-1823 ms-image"><a href="http://raspberrypi.org" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/Raspberry-Pi-700x600.jpg" height="600" width="700" alt="Raspberry Pi" class="slider-1826 slide-1823" title="Raspberry Pi" /></a><div class="caption-wrap"><div class="caption"><h1>#3 – Raspberry Pi Model A+ and B+</h1>The Raspberry Pi Foundation really is doing a great job at keeping its very popular platform up-to-date. Every year, we get great upgrades to the existing models. <br /> This year, the model A+ brings the Pi's price tag under $20, with a much smaller form factor, and 30% less power-consumption than its predecessor. The B+ is a model B on steroids: more USB ports, more GPIO headers, and again a power-consumption that dropped by 40%!</div></div></li><li style="display: none; width: 100%;" class="slide-1819 ms-image"><a href="http://www.ti.com/tool/cc3200-launchxl" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/ee0e66c4-ff50-42e2-85b5-cdf9f64d6208-700x600.jpg" height="600" width="700" alt="Texas Instruments CC3200" class="slider-1826 slide-1819" title="Texas Instruments CC3200" /></a><div class="caption-wrap"><div class="caption"><h1>#4 – Texas Instruments CC3200 LaunchPad</h1>A powerful Cortex-M4 micro-controller, a WiFi module, a very complete IP stack (DNS, mDNS, SSL-TLS with hardware crypto support, ...), and tons of examples: I really liked the CC3200 user-experience. The only downside is that I had to switch to Windows to use Code Composer Studio, but if you want to use <a href="http://energia.nu/" target="_blank">Energia</a> you can have a cross-platform IDE and a programming model very close to Arduino.</div></div></li><li style="display: none; width: 100%;" class="slide-1832 ms-image"><a href="http://www.advanticsys.com/shop/asxm1000-p-24.html" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/9J5A5383-621x533.jpg" height="600" width="700" alt="XM1000" class="slider-1826 slide-1832" title="XM1000" /></a><div class="caption-wrap"><div class="caption"><h1>#5 – Advanticsys XM1000</h1>I really wanted a nice and simple platform to experiment with wireless sensor networks, 6LoWPAN and CoAP. It turns out the XM1000 is a great platform (and so is the CM5000), that comes with support for both Contiki and TinyOS. The MSP430F2618 processor brings 116K of Flash and 8K of RAM to the table, which is actually pretty decent for most use cases. The external 1MB of Flash is also a nice-to-have if you want to store sensor data locally.</div></div></li><li style="display: none; width: 100%;" class="slide-1829 ms-image"><a href="https://github.com/esp8266/esp8266-wiki/wiki" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/WiFi-Serial-Transceiver-Module_01-612x525.jpg" height="600" width="700" alt="ESP8266" class="slider-1826 slide-1829" title="ESP8266" /></a><div class="caption-wrap"><div class="caption"><h1>#6 – ESP8266</h1>A $5 WiFi programmable module? Hell, yeah! Several alternative firmwares have popped up over the last few weeks (including a <a href="https://github.com/nodemcu/nodemcu-firmware">Lua-based one</a>), but the most interesting one is probably the beta version of the <a href="https://github.com/espressif/esp_iot_rtos_sdk" target="_blank">FreeRTOS-based SDK</a>.</div></div></li><li style="display: none; width: 100%;" class="slide-1835 ms-image"><a href="http://www.espruino.com/" target="_self"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/6ed91780f688cd95ce00560241c7a823_large-362x311.jpg" height="600" width="700" alt="" class="slider-1826 slide-1835" /></a><div class="caption-wrap"><div class="caption"><h1>#7 – Espruino Pico</h1>Javascript on a USB stick, for just £15! <br /> The first version of the Espruino was already an impressive piece of engineering, fitting a full Javascript interpreter in 256K of Flash, and 48K of RAM. The event-driven programming model is really nice, and makes <a href="http://www.espruino.com/Power+Consumption" target="_blank">power management</a> completely transparent.</div></div></li><li style="display: none; width: 100%;" class="slide-1830 ms-image"><a href="http://spark.io/" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/triptych2-700x600.jpg" height="600" width="700" alt="Spark Core" class="slider-1826 slide-1830" title="Spark Core" /></a><div class="caption-wrap"><div class="caption"><h1>#8 – Spark Core</h1>A super-tiny Cortex M3, that can do WiFi and that allows out of the box to be remotely programmed. Pretty cool, eh? You can indeed program the board either from an online IDE, or from a desktop IDE based on the Atom editor. The Spark Core <a href="https://github.com/spark/core" target="_blank">blueprints</a> are available under a Creative Commons license and the <a href="https://github.com/spark/firmware" target="_blank">firmware</a> and <a href="https://github.com/spark/core-communication-lib/" target="_blank">CoAP-based communication stack</a> are open source too (LGPL).</div></div></li><li style="display: none; width: 100%;" class="slide-1833 ms-image"><a href="https://www.sparkfun.com/products/12773" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/12773-05a-600x514.jpg" height="600" width="700" alt="CryptoCape" class="slider-1826 slide-1833" title="CryptoCape" /></a><div class="caption-wrap"><div class="caption"><h1>#9 – CryptoCape</h1>2014 has seen significant progress in the domain of security for the Internet of Things (look at <a href="https://datatracker.ietf.org/wg/dice/charter/" target="_blank">IETF efforts to optimize DTLS for IoT</a>, for example), and I certainly expect more in 2015. <br />With the Cryptocape, one can easily get hardware support for many cryptographic functions (Elliptic curves, AES, RSA, SHA-2, ...). The downside is that the complete datasheets of some of the modules included in the cape are only available under NDA :-(</div></div></li><li style="display: none; width: 100%;" class="slide-1831 ms-image"><a href="http://www.rapiro.com/" target="_blank"><img src="http://blog.benjamin-cabe.com/wp-content/uploads/2014/12/rapiro-346x297.png" height="600" width="700" alt="Rapiro" class="slider-1826 slide-1831" title="Rapiro" /></a><div class="caption-wrap"><div class="caption"><h1>#10 – Rapiro</h1>Last but not least, although a bit expensive, the Rapiro is a great platform for people interested in re-thinking the human-computer interactions. It's an open-hardware robot that is powered by an Arduino and a Raspberry Pi. Attach a Wi-Fi dongle to the Raspberry Pi and you have a <a href="https://www.youtube.com/watch?v=zlmVETaKDeU" target="_blank">wireless IoT robot that you can control using MQTT</a>!</div></div></li></ul></div></div><script type="text/javascript">/*<![CDATA[*/var metaslider_1826=function($){$('#metaslider_1826').addClass('flexslider');$('#metaslider_1826').flexslider({slideshowSpeed:10000,animation:"fade",controlNav:true,directionNav:true,pauseOnHover:true,direction:"horizontal",reverse:false,animationSpeed:600,prevText:"&lt;",nextText:"&gt;",slideshow:false});};var timer_metaslider_1826=function(){var slider=!window.jQuery?window.setTimeout(timer_metaslider_1826,100):!jQuery.isReady?window.setTimeout(timer_metaslider_1826,1):metaslider_1826(window.jQuery);};timer_metaslider_1826();/**/




>

by Benjamin Cabé at December 17, 2014 04:57 PM

Sacrilege – a Custom SWT Scrollbar

by Frank Appel at December 17, 2014 11:00 AM

Written by Frank Appel

SWT is a thin abstraction layer on top of native OS widgets. Which is a very good thing if you intent that your applications integrate well with the OS look and feel. But as a trade-off this approach limits styling capabilities significantly.

In particular I perceive the native SWT scrollbar often disruptive on more subtle view layouts. Coming across this problem recently I gave a custom SWT scrollbar widget a try. This post introduces the outcome – a simple slider control, usable as SWT Slider replacement or Scrollbar overlay.

SWT Scrollbar

The OS scrollbar abstraction of SWT has two manifestations: org.eclipse.swt.widgets.Scrollbar and org.eclipse.swt.widgets.Slider. The differences between both widgets are explained in the following JavaDoc passage:

‘Scroll bars are not Controls. On some platforms, scroll bars that appear as part of some standard controls such as a text or list have no operating system resources and are not children of the control. For this reason, scroll bars are treated specially. To create a control that looks like a scroll bar but has operating system resources, use Slider.’

This means the Slider provides at least a minimum of programmtical influence, like setting its bounds. But derivates of org.eclipse.swt.widgets.Scrollable (the superclass of all controls that have standard scroll bars) just provide the read-only abstraction Scrollbar.

Which still is very useful to react to scroll events for example, but leaves practically no room for look and feel adjustments. And the application range of sliders is usally limited to custom components, that – for whatever reasons – cannot use the scrollbars provided by the Composite super class.

FlatScrollBar

Although there were some cross platform obstacles to overcome, creating a custom slider was straight forward. The following picture shows the native slider on the left shell in comparison to the FlatScrollBar control used on the right shell (OS: Windows 7):

SWT Scrollbar: FlatScrollBar

It is noteworthy that the custom slider expands on mouse over as shown by the vertical bar. The horizontal bar depicts the compact base apprearance as a discreet thumb and selection indicator. In general the FlatScrollBar mimics essentially behavior, semantics and API of a Slider/Scrollbar:

SWT Scrollbar: Slider Mimicry

Obviously I decided to omit the arrow up and down buttons, but this is just an optical adjustment. While not configurable yet, the arrow buttons can be revived by changing a single constant value in the source code.

ScrollableAdapter

But what about the scrollbars of Scrollable derivates like text, tree, tables or the like? Being part of the OS control itself as stated above, they are simply not replaceable. Theoretically one could deactivate scrolling and use some kind of custom scrolled composite to simulate scrolling behavior. But this has several downsides. I gave this approach a try and the results were not satisfying.

However wrapping a scrollable into an overlay adapter-composite seems more promising. So far I was able to adapt successfully to Tree and Table controls.

SWT Scrollable: Table Scrollbar Overlay

And this is how adapter creation looks like:

new FlatScrollBarTable( parent, ( adapter ) -> new Table( adapter, SWT.NONE ) );

Easy enough, isn’t it? The second parameter is a generic factory (ScrollableFactory<T extends Scrollable>) that allows to adapt to various scrollable types. But as a generic overlay implementation is not possible at all, for now only trees and tables adapters are available.

The adapter provides access to the table instance by the method FlatScrollBarTable#getTable(). This allows to adapt also to JFace tree- and table-viewers without a problem.

As native scrollbars on Mac OS look acceptable out of the box the adapter refrains from custom overlays on that platform. Only Gtk and MS Windows platforms are affected. Hence no Mac Screenshot in the title image. However the FlatScrollBar control itself works well on OS X too.

 

Conclusion

Using the FlatScrollBar and the ScrollableAdapter in one of our projects looks promising so far. Of course the code base is pretty new and might contain some undetected issues or flaws. However I found it worthwhile to introduce this controls to an outside audience, which might help to reveal such flaws or lead to further requirements.

I am curious to see how sustainable this approach will be and if it is possible to adapt also to text and/or styled text controls. If you want to check out the controls, they are part of the com.codeaffine.eclipse.swt feature of the Xiliary P2 repository available at:

http://fappel.github.io/xiliary

In case you want to have a look at the code or file an issue you might also have a look at the Xiliary GitHub project. Look for FlatScrollbarDemo, FlatScrollBarTreeDemo and FlatScrollBarTableDemo for usage examples:

https://github.com/fappel/xiliary

For everything else feel free to use the commenting section below.

The post Sacrilege – a Custom SWT Scrollbar appeared first on Code Affine.


by Frank Appel at December 17, 2014 11:00 AM

Adventures with p2 composites

by Konstantin Komissarchik (noreply@blogger.com) at December 17, 2014 04:23 AM

Earlier this year, we changed the way Oracle Enterprise Pack for Eclipse (OEPE) repository is packaged from a monolithic repository to a composite of many component repositories. We made this change in order to have greater flexibility in how frequently or infrequently we update the various components of the product.

  1. Some of our components change rarely and some don’t change at all after the initial release. For instance, there is no point in re-releasing Java EE 7 documentation component with every OEPE release nor is there any point in having a separate copy of this component for every release kept on the download server.
  2. Some of our components are libraries from other products that update on their own schedule. For instance, we need the ability to update Oracle Mobile Application Framework and Oracle Cloud SDKs as new versions become available without orchestrating an entire OEPE release.

When it comes to assembling the composite repository, there are two types of components:

  1. Visible to the user
  2. Available for dependency resolution, but not visible to the user

The components that should be visible to the user are easy to handle. When p2 merges the child repositories listed in the composite repository metadata, it preserves the categorization of features as specified by the child repositories. The effect is a union of visible features.

The components that should be available for dependency resolution, but not visible to the user are harder to handle.

One approach would be to strip the categorization from the component repository and add the component repository to the composite. This is rarely a practical solution as the component repository may be hosted by a third party or there may be a need to retain the utility of being able to offer it separately, which requires features to be visible to the user.

Another approach is to utilize the repository references feature. This is the approach that we settled on, but there are some downsides.

  1. Bug 455422 - Unlike child repositories of a composite, referenced repositories are added to Eclipse repository registry. If you reference many components, the repository registry will bloat very quickly, something that the user is unlikely to appreciate. Further, the user can disable referenced repositories in the registry, interfering with the proper operation of you repository. One partial workaround is to create a separate composite repository for the dependencies and then use a repository reference to point to the dependencies composite. The benefit of this indirection is that you add only one extra repository to the repository registry, regardless of how many repositories you need to reference.
  2. Bug 409734 - Unlike child repositories of a composite, a referenced repository cannot be a relative URL. Depending on your build and release process, you may need to update repository references in various content.xml files when moving repositories around.

This concludes our adventures. Don’t forget to tip the guide.


by Konstantin Komissarchik (noreply@blogger.com) at December 17, 2014 04:23 AM

Raising Sapphire minimum Java version

by Konstantin Komissarchik (noreply@blogger.com) at December 16, 2014 07:28 PM

I am considering raising Sapphire's minimum supported Java version for the release 9 that will be contributed to Mars in the Summer of 2015.

The current minimum supported Java version is 6, last raised for the 0.7 release.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=409330

Java 6 (2006)

Dropping support for Java 6 would allow us to integrate Sapphire models with the try-with-resources feature by making Sapphire Element extend AutoCloseable.

try( Example element = Example.TYPE.instantiate() )
{
    ...
}

vs currently

final Example element = Example.TYPE.instantiate();

try
{
    ...
}
finally
{
    try
    {
        element.dispose();
    }
    catch( final Exception e ) {}
}

Java 7 (2011)

Dropping support for Java 7 would allow us to take advantage of multiple annotations per site improvement in Java 8 and allow us to remove the grouping annotations (@Service and @Services, @Validation and @Validations, etc.).

@Validation( rule = "${ Max >= Min }", message = "Must not be smaller than min" )
@Validation( rule = "${ Max <= 100 }", message = "Must be less than or equal to 100" )
    
ValueProperty PROP_MAX = new ValueProperty( TYPE, "Max" );

vs currently

@Validations
(
    {
        @Validation( rule = "${ Max >= Min }", message = "Must not be smaller than min" ),
        @Validation( rule = "${ Max <= 100 }", message = "Must be less than or equal to 100" )
    }
)
    
ValueProperty PROP_MAX = new ValueProperty( TYPE, "Max" );

Please respond to this post with your thoughts on what minimum Java version support you anticipate needing for Sapphire 9 in Summer of 2015.


by Konstantin Komissarchik (noreply@blogger.com) at December 16, 2014 07:28 PM

JBoss Tools 4.2.1 and Red Hat JBoss Developer Studio 8.0.1

by akazakov at December 16, 2014 07:05 PM

Maintenance update of JBoss Tools 4.2.1 and Red Hat JBoss Developer Studio 8.0.1 for Eclipse Luna is now available.

jbosstools jbdevstudio blog header

Installation

JBoss Developer Studio 8.0.1

This is an updatesite-only update. If you have JBoss Developer Studio 8.0.0.GA already installed, just run:

Help > Check for updates

JBoss Tools 4.2.1 and JBoss Developer Studio Bring-Your-Own-Eclipse (BYOE)

JBoss Tools and JBoss Developer Studio Bring-Your-Own-Eclipse (BYOE) require at least Eclipse 4.4 (Luna) but we recommend using the Eclipse Luna SR1 Java EE Bundle since then you get most of the dependencies preinstalled. Once you have installed Eclipse, you can find us on Eclipse Marketplace under "JBoss Tools (Luna)" or "JBoss Developer Studio (Luna)".

For JBoss Tools you can also use our update site directly if you are up for it.

http://download.jboss.org/jbosstools/updates/stable/luna/

What is new ?

This maintenance release includes mostly bug fixes but there are also a few new features which we would like to mention.

BrowserSim and CordovaSim skins for iPhone 6 and 6 Plus

Brand new IPhone 6 / 6 plus skins are now available in BrowserSim and CordovaSim

iphone6

OpenShift Explorer: Start and Stop Applications

You can now start and stop your OpenShift-hosted application within Eclipse. OpenShift tools offers start- and stop-actions in the context menu of the server adapter and the application in the OpenShift Explorer.

server adapter start stop

Arquillian validator for not public/static deployment method

The Arquillian validator creates a marker and a quick fix if a test contains a deployment method that is not public and/or static.

arquilliannonstatic

CDI auto enablement for Java EE 7 projects

CDI (Contexts and Dependency Injection) support is now enabled automatically for Eclipse Web Tools faceted projects if they have any Java EE 7 facet. For example if you create a project via New Dynamic Web Project Wizard and select Web facet v.3.1 you don’t need to enable CDI support in project properties or to install CDI facet. CDI Tools will do it automatically.

Updated Forge 2 Runtime

The included Forge 2 runtime is now 2.12.3.Final.

What is Next

More maintenance updates for Eclipse Luna are planned and we continue to work on the major release for Eclipse Mars but it’s all for 2015!

Happy Holidays and a joyful New Year!

Alexey Kazakov


by akazakov at December 16, 2014 07:05 PM

Bring Your IoT Ideas to Life with the WunderBar

by Eclipse Foundation at December 16, 2014 04:38 PM

You’re full of fantastic IoT ideas, but bringing them to fruition is never an easy task. Especially when it comes time to work with your sensors and electronics. Hardware can present a significant obstacle, but not when you use the WunderBar, your starter kit for the Internet of Things!  Learn about how the WunderBar, a sensor and cloud solution package that works out of the box, and how it will help you rapidly prototype and create your IoT products!

by Eclipse Foundation at December 16, 2014 04:38 PM

Eclipse DI and OSGi-Services and dynamics

by Tom Schindl at December 15, 2014 10:04 PM

Most people who use Eclipse DI know that they can simply use

@Inject
MyOsgiService service;

and the system will inject the service as desired but there are multiple problems with that:

  1. What happens if the there’s a newer higher ranked service registered?
  2. What if there are multiple services and you want all of them?
  3. What happens if the service is created with a OSGi-ServiceFactory on demand by the OSGi-Service registry?

The answer:

  1. Nothing will happen
  2. You can only inject the service with the highest ranking
  3. The service is always requested with the BundleContext of one of the framework bundles

With the next nightly build of e(fx)clipse – users of our core-bundles (you not necessarily need to write e4+JavaFX apps!) can now overcome those limitations with this:

@Inject
@Service
MyOsgiService service; // highest ranked service

@Inject
@Service
List<MyOsgiService> service; // services sorted by ranking

This simple annotation fixes all your problems!



by Tom Schindl at December 15, 2014 10:04 PM

Call for Submission: Modeling Symposium @ EclipseCon North America 2015

by Jonas Helming at December 15, 2014 08:53 PM

I am happy to announce that Philip, Ed and I are organizing the Modeling Symposium for EclipseCon North America 2015. It is scheduled for the second day of the conference, i.e., Tuesday, March 10th. The symposium aims to provide a forum for community members to present a brief  overview of their work. We offer 10 minute lightning slots (including questions) to facilitate a broad range of speakers. The primary goal is to introduce interesting, new, technology and features. We are mainly targeting projects that are not otherwise represented in the conference program.

If you are interested in giving a talk, please send a short description (a few sentences) to jhelming@eclipsesource.com. Depending on the number, we might have to select among the submissions. Submission Deadline is January 31st.

Please adhere to the following guidelines:

Please provide sufficient context. Talks should start with a concise overview of what the presenter plans to demonstrate, or what a certain
framework offers. Even more important, explain how and why the topic is relevant.

Don’t bore us! Get to the point quickly. You don’t have to use all your allocated time. An interesting 3 minute talk will have a bigger
impact than a boring 10 minute talk. We encourage you to plan for a 5 minute talk, leaving room for 5 minutes of discussion.

Keep it short and sweet, and focus on the most important aspects. A conference offers the advantage of getting in contact with people who
are interested in your work. So consider the talk more as a teaser to prompt follow-up conversations than a forum to demonstrate or discuss technical details in depth.

A demo is worth a thousand slides. We prefer to see how your stuff works rather than be told about how it works with illustrative slides. Please restrict the slides to summarize your introduction or conclusion.

Looking forward to your submissions!

 


TwitterGoogle+LinkedInFacebook

Leave a Comment. Tagged with eclipse, emf, eclipse, emf


by Jonas Helming at December 15, 2014 08:53 PM

Write cool scalable enterprise application tests with Xtend & embedded DSLs

by Eclipse Foundation at December 15, 2014 08:08 PM

Unit testing large enterprise applications can quickly become a nightmare: - hundreds of lines of code to test a single use case - introducing one simple change in the logic breaks tons of unrelated tests - nobody wants to maintain tests and you start to @Ignore it Don’t panic! Using modern techniques together with Eclipse's Xtend and cool embedded DSLs, we can significantly improve maintainability and readability of your tests, and drastically reduce the test codebase. In this session, first we talk about different kinds of tests and discuss common issues present in conventional unit testing. Then we will address those issues using modern technologies and techniques: - Xtend will save us a lot of boilerplate code and enable embedded DSLs - XFactory will provides us with a scalable and maintainable way of creating and persisting JPA-entities - JMockit-Xtend will give us a new elegant way of mocking - Separation between unit, persistent, and integration tests will improve our runtime test performance and test coverage. In short, you will learn how to write elegant tests and have fun while doing it! This session will include a lot of live coding. Slides Talk_2014_10-ECE-Write-cool-scalable-enterpr

by Eclipse Foundation at December 15, 2014 08:08 PM

Cooking Eclipse plugins with BDD, Cucumber, SWTBot and Tycho

by Eclipse Foundation at December 15, 2014 08:06 PM

At Migeran, we are building our Eclipse based development tools using a Behavior Driven Development and Testing methodology. We use Cucumber (JVM version) to write the feature specifications, SWTBot to automate the execution of each step, Tycho to integrate the whole test sequence into Maven, and Jenkins to execute everything automatically. This talk will be a success story of our experience using these tools. We will cover the following topics in particular: Achieving scenario independence Managing long test execution times Integrating Cucumber, SWTBot, Tycho and Jenkins Managing Mac OSX slaves in Jenkins How much manual testing is still necessary? At the end of the talk we will also present our test setup in action.

by Eclipse Foundation at December 15, 2014 08:06 PM

Eclipse December Democamp Munich 2014 – Retrospective

by Jonas Helming at December 14, 2014 02:29 PM

Last week, we hosted the Eclipse Democamp at our EclipseSource office in Munich. I think it was a great event and we really enjoyed the evening. I would like to say thanks again to:

Personally, I found there were two main highlights this evening. The first was the talk given by Marcel about the automatic error reporting he is currently working on. I think this is a really valuable initiative that all Eclipse projects will benefit from.. Thanks again Marcel, for this work. The second highlight was an organizational one. Due to legal restrictions given upon the room, we had to limit the number of participants for this Democamp to 80. As 80 participants is already a lot for a democamp, the interest shown in the Democamp Munich is traditionally much bigger (up to 200). So the 80 places are typically sold out after a few hours. While this is all great, there were two main issues this presented the last few years. First, people complained that they had to be online “by chance” when registration opened in order to get a seat. To solve this issue this year, we announced the time of  registration in advance to give everybody a fair chance. This worked well and we received good feedback.

The second issue, and in my opinion the biggest one, was that despite being sold out, we always had around 30% no shows at the event. This especially bothered  me because we had so many people on the waiting list who wanted to come, but did not make the registration in time, and still a lot of empty seats at the event. If only the people who could not make it would have unregistered in advance, thus allowing people from the waiting list to get in. .

So we came up with the following idea: Everybody who does not unregister, and is counted as a no-show at the event gives a 10 Euro donation to “Friends of Eclipse”. The beauty of this: The event is still free,  however if you “steal” a seat from the community by not showing up or not unregistering, you have to give something back to the community. Ralph Müller was looking forward to a lot of donations, but the good news is: When I counted, there were 77 people there and only 3 were missing for a total number of 80 participants! (Note: we had some extra seats in the room) One of the missing participants has already paid the donation and I hope the others will follow suit. So, I was really happy with the result and we are therefore planning to keep this new rule for upcoming democamps.

I am already looking forward to the next democamp in June!

  Eclipse December Democamp Munich 2014   Retrospective


TwitterGoogle+LinkedInFacebook

Leave a Comment. Tagged with democamp, eclipse, democamp, eclipse


by Jonas Helming at December 14, 2014 02:29 PM

EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

by Jonas Helming at December 12, 2014 12:53 PM

In this blog series, I describe the five most notable new features of EMF Forms 1.4.0. EMF Forms is a framework to efficiently develop form-based UIs based on a given data model. Please refer to this tutorial for an introduction to EMF Forms and to this post for an overview of the series.

As you might have noticed, it took me quite a while to post the last part of this series. In the meantime, EclipseCon Europe, the preparation of our Democamp and many new users of EMF Forms kept me pretty busy, so I am glad I finally found the time to present my favorite feature of release 1.4.0: Support for alternative UI technologies.

Have you wanted to be able to switch the UI to a different UI technology such as SWT, JavaFX, the browser or even a mobile device without re-developing all your forms? Do you see a risk in whether your UI technology of choice will be the right one for the next 10 years? Do you like EMF Forms but do not want to use SWT? This might be interesting for you then icon smile EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

One big advantage of the model-based approach of EMF Forms is the independance of the UI toolkit. The UI itself is described in a view model, which is then interpreted by a rendering component. The approach and the EMF Forms architecture allows you to plug in different a renderer. In a simple case, you plug in renderers to adapt the way certain elements are rendered. However, you can also provide a complete renderer set, which uses a different UI technology. See this tutorial for details.

The default and reference renderer is still based on SWT:

image14 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

 

EMF Forms also ships with all necessary adaptations to run on RAP and therefore bring your form-based UIs to the web:

image08 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

With 1.4.0, we introduced the first beta version of a JavaFX renderer:

image03 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

We are actively working on a renderer using AngularJS:

image05 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

As well as a mobile renderer for iOS and Android using Tabris:

image11 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

Finally, contributors are working on another web renderer based on Vaadin:

image07 EMF Forms 1.4.0 Feature #1: Support for alternative UI Technologies

As you can see, the approach is really powerful when it comes to UI technology independence. This lowers the risk for a technology decision but also enables the parallel use of UI technologies for different use cases.

I have created a tutorial describing how to use the different available renderers.

Addtionally it is surprisingly low effort to implement a custom renderer for a new UI technology.

If you are interested in one of the renderers under development or want an evaluation or support to implement your custom renderer, please contact us. We also provide sponsored development and development support for these purposes.


TwitterGoogle+LinkedInFacebook

Leave a Comment. Tagged with e4, eclipse, emf, e4, eclipse, emf


by Jonas Helming at December 12, 2014 12:53 PM

Tools Tip#1 - Effective editing of enhanced for loops in Eclipse

by maxandersen at December 12, 2014 10:58 AM

When you have have typed collections in your code like:

public void process(List<Product> products) {
        List<Customer> customers = getCustomers();
        // cursor here
      }

Most know that you can use the foreach template via normal content assist to quickly generate code like this:

public void process(List<Product> products) {
        List<Customer> customers = getCustomers();
        for(Customer c : customers) {
          // cursor here
        }
      }

But the foreach template will always choose the nearest collection, making it impossible to use with for example the products parameter in the above example.

The solution is to use the 'enhanced for loop' Quick Fix.

It is available when you have type the name of the collection and use the kbd:[Ctrl+1] (kbd:[Cmd+1] if on OS X) shortcut.

To illustrate it, here is a small video of it in Eclipse.

Hope you enjoyed this little tip!

Thanks to Xavier Coulon for asking the question and giving the idea for this Tip blog, and thanks to Markus Keller (JDT UI lead) for reminding me about the Quick Fix solution.

Have fun,
Max Rydahl Andersen
@maxandersen


by maxandersen at December 12, 2014 10:58 AM