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

EclipseCon 2015 - Program Announced

December 11, 2015 04:33 PM

The technical program for EclipseCon 2015 has been announced.

December 11, 2015 04:33 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

Oomph 1.0.0 is Available

by Eike Stepper (noreply@blogger.com) at December 12, 2014 10:44 AM

I'm very happy and a little proud to announce the very first release of Eclipse Oomph. The new installers are now available for your platform:

You can also install Oomph into an existing IDE via the update site or the site archive. Our help center is still work in progress but you may already find answers to your questions there. Our wiki may provide additional information.

This 1.0.0 release includes:

I'd like to thank our committers, especially my friend Ed Merks, our contributors and early users for their great contributions, valuable feedback, and concise bug reports. Working with you has been and will continue to be an absolutely pleasant and rewarding experience for me.


by Eike Stepper (noreply@blogger.com) at December 12, 2014 10:44 AM

What JBoss Tools Team should do in 2015 survey results!

by maxandersen at December 12, 2014 10:28 AM

We recently tweeted and posted a blog asking you to give your input to what the JBoss Tools team should be doing in 2015.

Today the results are in!

This is not a scientific survey, just an informal one thus neither we or you should use this as source of the single truth of what JBoss Tools users want or think - it is just one of many datapoints on the internet.

Background

We based the survey on the overall topics we have on our tentative roadmap for 2015:

  • (Hybrid) Mobile Tooling

  • HTML5/JavaScript/AngularJS

  • Making Eclipse Better

  • Docker/Vagrant

  • JBoss Modules support

  • Java EE 7 (Server, Batch, Web Services, JAX-RS, etc.)

  • OpenShift 3 (kubernetes)

  • Persistence tools (hibernate, JPA, querying, etc.)

And we asked two questions:

"What features would help you ?" and "Which single feature would you prefer JBoss Tools team work on ?".

Results

You can see full summary of the results at twtpoll, below is just my musings about it.

We had 113 votes in total for the 2 weeks the poll was open - I think that is pretty good for something just announced on our blog and twitter account.

The overall distribution is as follows (sorted by which features most said would help them):

pubchart?oid=82154624&amp;format=image

Looking at this we should continue making Eclipse better, improve Javascript and enhance the JavaEE 7 support if looking at what would help most of the voters.

What is interesting is that Hybrid mobile tooling did get a higher proportional vote if there was just one single feature you wanted to choose.

But if there is one thing you all wanted then it was that we made Eclipse Better and that becomes very visible when plotting the two questions in a bubble chart:

pubchart?oid=358689571&amp;format=image

Then it becomes more clear how important you feel making eclipse better is. And trust me - we agree and it is one of our top priorities in 2015.

Comments

In addition to the questions above the survey allowed you to specify other in the field of what features would help you most. Below are a summary and my initial answers to these.

  1. Better connection between app that’s deployed to (local) running server and debugger for source lookup?

    I’m not sure what this refer to since if you are running locally and have use the server adapter to launch the server in debug mode source lookup should happen automatically for your projects. If you who made this comment are seeing this, please leave a comment or pointer to a JIRA so we can follow up ? Thank you.

  2. Better Netbeans support: syntax highliting for .drl?

    I wish I could snap my fingers and then just have people working on Netbeans support. We actually did try that in the past and I have the picture to prove it:

    rhat

    On the serious note we actually in past reached out to the NetBeans community to let them know if they would like to have better support for JBoss technology in NetBeans we would gladly help but it would need someone separately to drive the implementation. A few showed up but most faded away again (unfortunately).

    That said recently there seem to be an active Drools plugin and WildFly integration (maintained by Red Hatter Emmanuel Hugonnet) and the Forge team is working on making its scaffolding and wizard tools available from Netbeans too. So there is hope!

  3. bpmn, drl tools?

    The BPMN and Drools tools are part of the Integration stack that is part of overall JBoss Tools but works at a different release cadence which is why they were not included in this survey. I think it would make sense we made a similar one when they start planning for their new development.

    BPMN tooling is being maintained, but Drools is currently mainly just sustained since they focus more on their web based Uberfire based toolsuite.

  4. ccccccdkkfkfdhjcviebihnvturkunncufjtnnntfhui?

    Thanks for your salty password. It was very tasty.

  5. Cordova?

    Apache Cordova is what Hybrid mobile tooling mainly covers at the moment. We will continue to make the integration better via the Eclipse Thym project that Gorkem Ercan leads. In this area you will also see FeedHenry integration to show up soon(tm).

  6. IoT stack?

    We do not have any intermediate plans for Internet-of-Things related tooling; but if you are interested in this area do checkout out the IoT Eclipse working group which has a lot of interesting projects and tools.

  7. Java 9/Project Jigsaw support?

    This is being worked on in the Eclipse JDT platform as part of the Java 9 feature development. This is also part of a platform vision being worked at in the Eclipse Foundation and I hope I can post more details/info about this soon.

  8. JSF?

    JSF is fully supported by our Java EE runtimes and tooling, but we do not have active plans on doing much feature addition or new features around JSF tooling. We are even planning on deprecating the JSF visual tooling since it has become a high cost to maintain and our usage stats shows only a small portion of users use it. That said we do want to keep JSF tooling updated to spec for content assist, code navigation etc. thus if you have specific issues you feel are missing do let us know in our issue tracker and we will follow up.

  9. m2e?

    We are committers on the Maven tooling for Eclipse and Fred Bricon leads the m2e-wtp integration that makes it possible to easily to configure, build and deploy war and ear modules. All our examples rely on Maven thus we are definitely actively working on making the Maven experience better from within Eclipse and JBoss Tools. In that context if you are still on Eclipse Kepler based tooling then try our Luna tools where m2e import performance have been greatly improved!

  10. move to idea as a base?

    There are many that wish this to happen, and I understand the reasoning. Intellij IDEA is an awesome IDE, has a lot of great features but it is not possible for us to contribute to because the interesting parts are closed source. I’ve always said that if IDEA had been opensource 10+ years ago when I started moving Hibern8IDE to an IDE, JBoss Tools would probably have been IDEA based today. But Eclipse being opensource and the most used IDE Eclipse that is where we ended up.

    Many thinks IntelliJ IDEA is opensource, but it is only its core features that are opensource. All the interesting tools (for JBoss technology) are mainly part of the Ultimate Edition which is closed source; meaning we have no sensible way to make an opensource tooling offering on IDEA (assuming we had an army of developers with free time available :)

    That said, IntelliJ already has good JBoss support and we are engaged with the IntelliJ team on making information about it more readily available. Arun Gupta made a few blogs and webinars on the IDEA support for JBoss and Java EE.

    But, just be aware all of that does require the Ultimate Edition.

    For those that do not know, JBoss Forge is available today in Intellij. That at least gives you some of the scaffolding features also available from JBoss Tools.

  11. Nestor?

    Nestor is one of our JBoss Tools Playground features that are experiments that we are making to explore what things we can do to improve the Eclipse experience. Nestor is the one that allows viewing your projects nested as they are on your filesystem instead of the flat project layout default available in Eclipse.

    And I’m happy to say that the Eclipse platform lead have accepted to get this integrated into the upcoming Eclipse Mars release if we submit a Gerrit patch for it - which we are working on to happen ASAP.

    We are also going to make our Easymport feature available as incubation for Mars which also will help importing your existing projects into Eclipse much smoother.

Conclusion

I want to say many thanks to those who participated and let their voice heard about what we should be working on in 2015. I hope you will see that we do attack most of the high priority items.

But do remember we can always use your help too - bug reports, feature requests and pull requests are always welcome!

If you are interested then please do look into our JBoss Tools Community Acceptance Testing program or get dirty with the code at http://github.com/jbosstools.

Have fun and Happy holidays!
Max Rydahl Andersen
@maxandersen


by maxandersen at December 12, 2014 10:28 AM