Oomph 03: Our First Project Setup

by Christian Pontesegger (noreply@blogger.com) at August 25, 2016 09:54 AM

We are going to prepare our first project setup with Oomph.

Source code for this tutorial is available on github as a single zip archive, as a Team Project Set or you can browse the files online.  

For a list of all Oomph related tutorials see my Oomph Tutorials Overview.

Step 1: A basic setup file

Of course Oomph setups can be created within eclipse. So start with a new General/Project named com.codeandme.oomph. Now create a new Oomph / Setup Project Model. The wizard will setup all kinds of default tasks for us, but we want to start from scratch to understand all the tasks involved.

So select a Simple Project, provide a Label "Code and me" and Finish the wizard.


The setup file created simply contains a root node for the project and a default stream named Master.


Not much of a setup yet, but we can already add it to our eclipse installer.

Step 2: Adding the setup to the installer

Launch the eclipse installer from our first tutorial, select an eclipse product and advance to page 2 of the wizard. There hit the + icon on the toolbar, select Browse File System and select the setup file we just created. The setup will be added to the <User> node. Not much sense installing our empty setup yet, but now the installer references our setup file and we can test it for each step we add. On each start of the installer the setup file gets reloaded, so you do not have to add the file each time you want to test it.

Step 3: Adding a simple ini file action

One of the simplest actions to add is an ini file adjustment. As you might guess this adds entries to the eclipse.ini file provided with your product installation. Select the Code and me node in your setup, then use the context menu to add a New Child / Eclipse ini task. Now we are going to adjust the task using the Properties view.

To change the initial heap size of your Java VM set Option to -Xms, Value to 1024m and VM to true. The last parameter is needed for all Java VM properties. Set it to false when changing any eclipse.ini properties like -showsplash or similar.

Make sure to provide a unique ID and a usable Description. The IDs are important when we want to refer to a node later in our setup.


Step 4: Add folders to structure your settings

When we start adding multiple ini tasks we should cluster them. Therefore add a new Compound item to your root node and D&D your ini settings in there. Compounds add more structure to your setup, but have no effect on the installation process.

Optional: Investigate common tasks

The scheme for adding new tasks is the same for all kinds of things. Add a node, adapt its properties, save and run your setup to test it. Good sources for tasks are the existing eclipse project setups. You may browse them by opening the catalog from the toolbar or from the main menu: Navigate / Open Setup / Parent Models / Catalog Index. We will have a closer look at dedicated tasks in the following tutorials.

by Christian Pontesegger (noreply@blogger.com) at August 25, 2016 09:54 AM

Eclipse IoT Day @ ThingMonk | Register Now

August 23, 2016 03:36 PM

Register for the Eclipse IoT Day @ ThingMonk taking place in London on Sept. 12!

August 23, 2016 03:36 PM

Progress Update on IP @ Eclipse

by Mike Milinkovich at August 22, 2016 06:01 PM

As promised in my last post, today we are rolling out the new Eclipse Contributor Agreement (ECA). As I mentioned earlier, if you already have an active Eclipse CLA, you don’t have to do anything….your CLA remains active and you can convert to the new agreement when it expires after three years. That said, we think that the new agreement is clearer, and more consistent with the practices of the broader free and open source community.

In other news, last Wednesday the Eclipse Foundation Board of Directors approved the new IP Policy that I discussed in late June. This means that by the end of this year, projects at the Eclipse Foundation will be able to pick the type of IP due diligence that they want. If you want to learn more, I strongly suggest that you read my previous post on the topic, and join in the conversation on bug 496959.

The Eclipse Foundation continues to enhance its policies and procedures to make it a better place for developers to host their projects. I hope everyone agrees that these are all steps in the right direction.


Filed under: Foundation

by Mike Milinkovich at August 22, 2016 06:01 PM

EclipseCon Europe – see you in 2 month!

by Maximilian Koegel and Jonas Helming at August 22, 2016 09:13 AM

After several busy weeks, the PC has finally selected the talks and tutorials for EclipseCon Europe 2016. I would like to thank all members of the PC for their great work and all submitters for their proposals.

I am sorry we had to reject so many talks. We tried hard to provide a meaningful declined comment, so that people might understand our reasoning. In some cases, it was very difficult to decide though – we liked the submission, but we just liked others a bit more or had to think about the overall balance of topics throughout the conference.

It was amazing to see the diversity and quality of the submitted talks. We could have easily extended the conference by one or two days and still filled them with interesting slots. This might be worth a thought for next year.

The program reflects the diversity and strength of the Eclipse ecosystem. We are looking forward to interesting sessions about classic Eclipse technologies and tools, a strong web and cloud track, experience reports from industry, science talks and much more. Some special highlights for me are (among others):

  • The strong Java 9 track, especially the discussion “Jigsaw vs. OSGi” and Eclipse Java 9 support
  • The diverse content about JavaScript, cloud tooling, Angular and much more
  • Talks about cross-cutting topics, such as usability, performance, open source and the community
  • The presence of most major Eclipse projects including the Eclipse Platform, Git CDT, the modeling community and Xtext

On top of that, we have very good content for the IoT theme day and the project quality day. So be prepared for a hard time when selecting the talks you want to attend at EclipseCon Europe 2016!

Looking forward to see you in 2 month!

EclipseCon Europe 2016


TwitterGoogle+LinkedInFacebook

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


by Maximilian Koegel and Jonas Helming at August 22, 2016 09:13 AM

LiClipse 3.1.0 (updating dependencies)

by Fabio Zadrozny (noreply@blogger.com) at August 18, 2016 01:16 PM

LiClipse 3.1.0 was just released.

The major changes aren't really on LiClipse itself, but on the bundled PyDev (5.2.0) and EGit (4.4.0) plugins.

PyDev changes may be seen at http://pydev.blogspot.com.br/2016/08/pydev-520-released-static-type.html.

EGit changes may be seen at https://wiki.eclipse.org/EGit/New_and_Noteworthy.

Enjoy!



by Fabio Zadrozny (noreply@blogger.com) at August 18, 2016 01:16 PM

JBoss Tools AM3 for Eclipse Neon

by jeffmaury at August 17, 2016 04:13 PM

Happy to announce AM3 (Developer Milestone 3) build for Eclipse Neon.

Downloads available at JBoss Tools 4.4.1 AM3.

A late bug has been discovered in the Docker Tools on the Windows platform. It prevents the Docker Explorer to be displayed and affects also Openshift users. This will be fixed in the next release of JBoss Tools. A workaround exists: after you install JBoss Tools, restart your Eclipse and run Help > Install new software > Work with: http://download.eclipse.org/linuxtools/updates-docker-nightly/ > select Docker Tooling > install. Restart when prompted.

What is New?

Full info is at this page. Some highlights are below.

OpenShift 3

Although our main focus is bug fixes, we continue to work on providing better experience for container based development in JBoss Tools and Developer Studio. Let’s go through a few interesting updates here and you can find more details on the What’s New page.

Events

Events generated as part of the application livecycle are now displayed in the property view under the Events tab (available at the project level):

Property view

Volume claims

Volume claims are now displayed in the property view under the Storage tab (available at the project level):

Property view

Here is a short video which demonstrates these new features:

Docker Tools

Support for Container Labels

Users can now specify labels when running a container. The labels are saved in the launch configuration and can also be edited before relaunching the container.

Container Labels

Docker Hierarchy View

The new Docker Image Hierarchy view lets the user view the layers for a selected image in the Docker Explorer View. This is especially interesting when an image was built locally, as it helps understanding on which layers the top-level image depends.

Docker Image Hierarchy View

Automatically detect known Docker daemon connections

When the Docker Explorer view is opened, the list of existing connections (saved from a previous session) is reloaded. In addition to this behaviour, the view will also attempt to find new connections using default settings such the &aposunix:///var/run/docker.sock&apos Unix socket or the &aposDOCKER_HOST&apos, &aposDOCKER_CERT_PATH&apos and &aposDOCKER_TLS_VERIFY&apos environment variables. This means that by default, in a new workspace, if a Docker daemon is reachable using one of those methods, the user does not have to use the "New Connection" wizard to get a connection.

Extension point for Docker daemon connection settings

An extension point has been added to the Docker core plugin to allow for custom connection settings provisionning.

Server Tools

QuickFixes now available in runtime detection

Runtime detection has been a feature of JBossTools for a long while, however, it would sometimes create runtime and server adapters with configuration errors without alerting the user. Now, the user will have an opportunity to execute quickfixes before completing the creation of their runtimes and servers.

JBIDE 15189 rt detect 1

To see this in action, we can first open up the runtime-detection preference page. We can see that our runtime-detection will automatically search three paths for valid runtimes of any type.

JBIDE 15189 rt detect 2

Once we click search, the runtime-detection’s search dialog appears, with results it has found. In this case, it has located an EAP 6.4 and an EAP 7.0 installation. However, we can see that both have errors. If we click on the error column for the discovered EAP 7.0, the error is expanded, and we see that we’re missing a valid / compatible JRE. To fix the issue, we should click on this item.

JBIDE 15189 rt detect 3

When we click on the problem for EAP 7, the new JRE dialog appears, allowing us to add a compatible JRE. The dialog helpfully informs us of what the restrictions are for this specific runtime. In this case, we’re asked to define a JRE with a minimum version of Java-8.

JBIDE 15189 rt detect 4

If we continue along with the process by locating and adding a Java 8 JRE, as shown above, and finish the dialog, we’ll see that all the errors will disappear for both runtimes. In this example, the EAP 6.4 required a JRE of Java 7 or higher. The addition of the Java 8 JRE fixed this issue as well.

JBIDE 15189 rt detect 5

Hopefully, this will help users preemptively discover and fix errors before being hit with surprising errors when trying to use the created server adapters.

Forge

Forge Runtime updated to 3.3.0.Final

The included Forge runtime is now 3.3.0.Final. Read the official announcement here.

startup

Added Install addon from the catalog command

From Forge 3.3.0.Final onwards it is now possible to query and install addons listed in the Forge addons page.

addon install from catalog

Freemarker

Improved automatic finishing of FreeMarker constructs

When you type <#, <@, ${, #{ and <#-- the freemarker editor now automatically close them.

Enjoy!

Jeff Maury


by jeffmaury at August 17, 2016 04:13 PM

Parting out eclipse

by @nedtwigg Ned Twigg at August 17, 2016 03:12 PM

@nedtwigg wrote:

Whether your preferred IDE is Eclipse, IntelliJ, or a magnetic needle and a steady hand, it's undeniable that Eclipse has many valuable components. Want to parse and analyze Java sourcecode? Easy. Want to tinker with building some kind of automatic refactoring tool? Eclipse has low-level and high-level APIs for that. Eclipse's guts aren't constrainted to just Java, it has similar APIs for javascript, C/C++, and probably other stuff that I don't know about.

Dingle Dangle! by Grant. C from Flickr https://www.flickr.com/photos/grant_subaru/14175646490/in/photolist-nADTQ7-5JjmY5-5Jf8x2-5JjmHE-6eH3Kf-7JdcJP-5Jf6d4-5Jf8h6-5Jf94F-5Jjo55-5Jf84B-5Jf726-5JjnvG under https://creativecommons.org/licenses/by/2.0/  Modified by Ned Twigg to add "Eclipse" and "Your project" text

Unfortunately, these components are usually not published to a maven repository - they're only published to a p2 repository. As we've discussed before, almost nobody knows how to use p2, which means that one of the hardest parts of using an eclipse component is just figuring out how to get the jar into your build.

So let's say we wanted to take the code formatter out of eclipse and use it to make a lightweight code formatting tool, with Gradle as our build system. How would we do it?

Grab pieces from eclipse

The goomph project has a p2.asmaven plugin which tricks Gradle into thinking that a p2 repository is really a maven repository. It looks like this in your build.gradle

plugins {
    id 'com.diffplug.gradle.p2.asmaven' version '3.0.6'
}

// The jars we'd like to pull from Eclipse's p2 repositories
def eclipseDeps = [
    // The dependencies we actually use
    'org.eclipse.jdt.core',
    'org.eclipse.text',

    // Their transitives
    'org.eclipse.core.contenttype',
    'org.eclipse.core.jobs',
    'org.eclipse.core.runtime',
    'org.eclipse.core.resources',
    'org.eclipse.equinox.common',
    'org.eclipse.equinox.preferences',
    'org.eclipse.osgi'
]
// build a maven repo in our build folder containing these artifacts
p2AsMaven {
    group 'p2', {
        repoEclipse '4.6.0'
        eclipseDeps.each { p2.addIU(it) }
        eclipseDeps.each { p2.addIU(it + '.source') }
    }
}
// add these jars as dependencies
dependencies {
    eclipseDeps.each { compile "p2:${it}:+" }
}

You're probably asking, "Why do I have to manually specify the transitive dependencies!?" And the answer is that p2 and maven's dependency models don't map onto each other that nicely. Goomph might support this in the future, but for now it's not so bad having to list them out by hand.

Figure out how to use the eclipse piece

Eclipse projects generally have fantastic javadoc, but it can be hard to figure out where to go to get help and discuss the project. Here's the algorithm I recommend to get help:

  1. Check the eclipse bugzilla. It's not the prettiest, but there's a wealth of information there, and the core developers are very active.
  2. Check the mailing lists. They all have searchable archives.
  3. Check the forums. They're generally geared more towards end-users than developers, which is why I recommend checking bugzilla and the mailing lists first, but sometimes there's something good there.

If you want to see what's in the process of getting merged in, take a look at the Eclipse gerrit instance, but gerrit's not particularly beginner-friendly.

Publish your thing

If you're going to publish your thing to a public repository like maven central, you'd normally specify your dependencies in your pom. However, it's important for all of your dependencies to also be present within that repository, and your eclipse dependencies are not. The easiest way to fix that is to embed the classfiles from eclipse into your jar (a "fat jar"), and remove them from your maven pom. Here's how:

// embed the eclipse jars into our "fat jar"
jar {
    from {
        configurations.embeddedJars.collect { it.isDirectory() ? it : zipTree(it) }
    }
    // the eclipse jars are signed, and our fat jar breaks the signatures
    // so we've gotta be sure to filter out the signatures
    exclude 'META-INF/*.RSA'
    exclude 'META-INF/*.SF'
}

// remove the embedded jars from our pom
apply plugin: 'maven-publish'
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            pom.withXml {
                asNode().dependencies.'*'.each() {
                    if (it.groupId.text() == 'p2') {
                        it.parent().remove(it)
                    }
                }
...

If you'd like to see a working example, check out Spotless. Just clone it and run gradlew ide, and you'll have a working eclipse IDE where you can play with the topics in this post.

Posts: 1

Participants: 1

Read full topic


by @nedtwigg Ned Twigg at August 17, 2016 03:12 PM

Eclipse Newsletter - Eclipse Che: A New Eclipse IDE

August 17, 2016 02:07 PM

Read this month's newsletter to learn all about Eclipse Che!

August 17, 2016 02:07 PM

Contributor Agreement Update

August 15, 2016 03:50 PM

Adjacent to the IP process overhaul, next week the Eclipse Foundation will be updating contributor agreements.

August 15, 2016 03:50 PM

Contributor Agreement Update

by Mike Milinkovich at August 15, 2016 12:30 PM

In addition to overhauling our IP processes, next week the Eclipse Foundation will be updating our contributor agreements. The changes we’ll be making include:

  1. Rename the CLA to the “Eclipse Contributor Agreement” or “ECA”. The reason we’re doing that is that in many circles within the free and open source community “CLA” has a negative connotation, as many CLAs require authors to assign ownership of their contributions to some entity. Eclipse does not do this, nor ever intends to do so. We have had a number of instances where people have assumed that our CLA does something it doesn’t, just because of the name. Hopefully a different TLA will help with that.
  2. The current CLA basically copies and rephrases the Eclipse Contributor Certificate of Originality (CoO). It would be a lot easier to simply embed a direct copy of the relevant text in the ECA.
  3. The Eclipse Foundation has its own CoO. We have had a number of requests to move to the Linux Foundation’s Developer Certificate of Origin (DCO), as it is widely adopted and well understand by the broad community of open source producers and consumers. So we are going to do that.

We do not consider these changes to be a big deal from a legal perspective — the end result of good record-keeping and clear IP flows remain the same. As a result, everyone with existing Eclipse CLAs will continue to use those until they expire. We are hoping that these changes will not cause any disruption to our existing contributor work flow.

Please let me know if you have any questions or concerns!


Filed under: Foundation

by Mike Milinkovich at August 15, 2016 12:30 PM

Data Virtualization Tooling now available on Mars

by pleacu at August 11, 2016 04:11 PM

Try our complete Eclipse-Mars capable, JBDS 9.1.0 compatible integration tooling.

jbosstools jbdevstudio blog header
JBoss Tools Integration Stack
Since JBoss Tools 4.3.0 we require Java 8 for the installation and use of all JBoss Tools, including the Integration Stack tooling. We still support developing and running applications using older Java runtimes. See more in Beta1 blog.

JBoss Tools Integration Stack 4.3.1.Final / JBoss Developer Studio Integration Stack 9.0.1.GA

What’s an Integration Stack?

The Integration Stack for JBoss Developer Studio is a set of features and plugins for Eclipse that further enhances the IDE development functionality provided by JBoss Developer Studio in support of the following frameworks:

All of the Integratioon Stack components have been verified to work with the same dependencies as JBoss Tools 4.3 and Developer Studio 9.

JBoss Fuse Development

  • Fuse Tooling - JBoss Fuse Development provides tooling for Red Hat JBoss Fuse. It features the latest versions of the Fuse Data Transformation tooling, SwitchYard and access to the Fuse SAP Tool Suite.

  • SwitchYard - A lightweight service delivery framework providing full lifecycle support for developing, deploying, and managing service-oriented applications.

JBoss Business Process and Rules Development

JBoss Business Process and Rules Development plug-ins provide design, debug and testing tooling for developing business processes for Red Hat JBoss BRMS and Red Hat JBoss BPM Suite.

  • BPEL Designer - Orchestrating your business processes.

  • BPMN2 Modeler - A graphical modeling tool which allows creation and editing of Business Process Modeling Notation diagrams using graphiti.

  • Drools - A Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing including KIE.

  • jBPM6 - A flexible Business Process Management (BPM) suite.

JBoss Data Virtualization Development

JBoss Data Virtualization Development plug-ins provide a graphical interface to manage various aspects of Red Hat JBoss Data Virtualization instances, including the ability to design virtual databases and interact with associated governance repositories.

  • Teiid Designer - A visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Teiid runtime framework.

  • ModeShape - A distributed, hierarchical, transactional and consistent data store with support for queries, full-text search, events, versioning, references, and flexible and dynamic schemas. It is very fast, highly available, extremely scalable, and it is 100% open source.

ModeShape is deprecated.

JBoss Integration and SOA Development

JBoss Integration and SOA Development plug-ins provide tooling for developing, configuring and deploying BRMS, SwitchYard and Fuse applications to Red Hat JBoss Fuse Service Works, Red Hat JBoss Fuse and Fuse Fabric containers, Apache ServiceMix, and Apache Karaf instances.

  • All of the Business Process and Rules Development plugins, plus…​

  • Fuse Apache Camel Tooling - A graphical tool for integrating software components that works with Apache ServiceMix, Apache ActiveMQ, Apache Camel and the FuseSource distributions.

  • SwitchYard - A lightweight service delivery framework providing full lifecycle support for developing, deploying, and managing service-oriented applications.

SOA 5.x Development

Please note that the plugins in this category have been deprecated.
  • JBoss ESB - An enterprise service bus for connecting enterprise applications and services.

  • jBPM3 - A flexible Business Process Management (BPM) Suite - JBoss Enterprise SOA Platform 5.3.x compatible version.

What’s Been Updated for this release?

The highlight of this release is tooling support for JBoss Data Virtualization 6.3.0 on Eclipse Mars with Teiid Designer. In addition a new spin of an Early Access version of Fuse Tooling is available.

Released Tooling Highlights

Data Virtualization Highlights

Teiid Designer Highlights

SOA 5.x Development

JBoss ESB, jBPM3 and guvnor. These tools have been deprecated.

Early Access Tooling Highlights

JBoss Fuse Development Highlights

Fuse Tooling Highlights

The JBoss Tools website features tab

Don’t miss the Features tab for up to date information on your favorite Integration Stack components.

Installation

The easiest way to install the Integration Stack components is to first install JBoss Tools 4.3.1 or JBoss Developer Studio 9.1.0 and then select the Software/Update tab in the JBoss Central view. Select the &aposEnable Early Access&apos checkbox.

For a complete set of Integration Stack installation instructions, see Integration Stack Installation Instructions

Try it out!

Paul Leacu.


by pleacu at August 11, 2016 04:11 PM

See you in Ludwigsburg at EclipseCon Europe!

by Doug Schaefer at August 11, 2016 02:53 PM

It’s been many years since I’ve been to EclipseCon Europe. It hasn’t been from a lack of desire. There’s just been a few personal and business reasons that made it difficult. But this year, the road is clear and my talk, “Arduino, Qt, and Iot with the Eclipse C++ IDE” has been accepted as one of the early bird selections. I was really proud of that and can’t wait to get there.

This last year or so has been a very active one for me and the team here at QNX with our contributions to Eclipse. The Launch Bar, which proved popular with BlackBerry 10 developers, has been made more general and is now hosted at Eclipse for all projects to use. It greatly simplifies the launch and build experience, especially when dealing with remote machines.

We are actively working on support in CDT for Qt, which has proven popular with QNX customers and other embedded systems developers. The highlight is the addition of a QML editor which we will continue to add content assist and other features expected of good Eclipse editors. While these things are good for QNX users, we think these things will be good for all users of Eclipse and also support Qt on Windows, Mac, and Linux.

I have switched my personal focus on embedded real-time systems and working on making Eclipse and the CDT much easier for developers making software for those systems. My Arduino C++ IDE bridges the gap between professional embedded developers and the hobbyist working with Arduino boards. It’s a great exercise in providing a user experience that can satisfy both and I think we’re making strides there.

My talk will attempt to cover all of that. It’s a tall order, but I have a simple, yet somewhat contrived example that shows an Arduino board with sensors and lights talking to a BeagleBone board running QNX with a touchscreen showing status from the board. The BeagleBone then communicates with a MQTT server which is watched by a vertx.x Web server to show the same information on web page. All of that is built with Eclipse and the massive ecosystem we’ve built over the years. It’s a great showcase.

It should be a great time. It’ll be good to see a lot of my European friends I haven’t seen for years or have only met on mailing lists or who I’ve never met but have an interest in the CDT and other Eclipse IDE projects. We have a CDT summit planned for the Monday and I hope to see everyone there and share what we’re planning and to see what you’re interested in.

It will be a great week. And now I really can’t wait!


by Doug Schaefer at August 11, 2016 02:53 PM

Moving on

August 11, 2016 09:00 AM

I’ve been working for the last decade in the finance industry in London, most recently at Credit Suisse where I was the JCP Executive Committe representative, attending meetings and voting on behalf of the firm. (You can see more information about what makes up the JCP EC; there are representatives from companies such as Azul, Eclipse, RedHat and Twitter as well as user groups such as SouJava and the London Java Community – along with big users of Java technology, such as Credit Suisse and Goldman Sachs.)

Working in finance has always been an interesting challenge, with a scale of computing resources unknown outside of a small set of cloud-scale technology companies. Furthermore time tends to be profitable which means large scale computing and/or meaty hardware, which from a technology perspective comes with its own challenges and interesting solutions. I’ve heard it said that some companies in the finance industry, if they were considered to be technology companies rather than financial houses, that they would be the biggest technology firms in the city.

The other thing that I’ve enjoyed has been writing books, speaking at conferences, and writing for InfoQ – not to mention the open source contributions that I’ve been doing over the years. Thanks to my previous employers for being understanding. It has also helped launch the Docklands.LJC, which has entered its teens and had speakers from across the globe come and talk to interested attendees from around the Wharf.

However, the time has come for me to move on, and at the end of this week I start somewhere new. It’s a well known technology company that you will have heard of, but it’s an ideal move for me and I am definitely looking forward to the challenges that lie ahead. My LinkedIn profile has me as a Director of Bandlem Ltd, which is my own company, but I need to verify what I can (and can’t) say before I say it publicly. As a result, and with the ramp up of the new role, I may be slightly quieter than usual here and on Twitter for the near future, but the good news is that I will be speaking at both JavaOne and EclipseCon later this year, as an independent speaker.

It also means that I will be handing over the reins of the Docklands.LJC to my co-founder Robert Barr, who will take over the organisation of events in the Docklands. Hopefully I’ll still be able to come over to them in the future, time permitting, so I may well see you at future events over there.

I will also be taking a sabbatical from writing at InfoQ for the time being; although my writing output has dropped (both here on the blog and at InfoQ), which I put down to having spent so long writing books. It will be an interesting exercise to see what I will do with free time in the evenings now.

I’m really looking forward to where I’m going, and I can’t wait to start.


August 11, 2016 09:00 AM

Integrate Automated Error Reporting into Your Software

by Ctrlflow at August 10, 2016 07:48 PM

With Ctrlflow Automated Error Reporting it is easy to integrate a professional error reporting system into your Java software, be it an Eclipse plug-in or a full-blown desktop application. As of this writing, there exist several client libraries (all of them Open Source) which you can use to send error reports to your personal instance of the Ctrlflow Automated Error Reporting service. This post briefly describes each of them, so that you can pick the one that works for your software. Developing Eclipse Plug-Ins? If you are developing a plug-in for the Eclipse IDE, there’s an obvious choice: Integrate with […]

The post Integrate Automated Error Reporting into Your Software appeared first on Ctrlflow Blog.


by Ctrlflow at August 10, 2016 07:48 PM

EclipseCon and JavaOne presentations

August 10, 2016 07:00 PM

It’s a busy season on the conference circuit, it seems. I’ve been giving a few presentations at the Docklands.LJC recently, and I’ve also been accepted as a speaker at JavaOne in September and EclipseCon Europe in October.

The presentations from the Docklands.LJC have been recorded, and the videos are slowly making their way over to InfoQ. Generally the InfoQ versions are more professional, as they have synchronized slides to go along with the video recording, but they’re also available as early rushes over on the Docklands.LJC site itself.

If you’ve missed them, here’s what I’ve been talking about:

The presentations are also available on my SpeakerDeck pages if you find that’s an easier way to look through them. Plus, they might show up better if you’re on a mobile device. When the presentation decks for the other conference sessions are avaialble, they’ll appear here as well.

My upcoming talks include:

JavaOne – September

HotSpot Under the Hood – an introduction to how the HotSpot runtime optimised Java calls, how the interpreter and JIT compiler work together to make your programs run faster, and how to interpret what code is generated when an application runs. This is known as CON3808 on the JavaOne 2016 Session Catalog, but there doesn’t appear to be an easy way to link to it. From the abstract:

Have you ever wondered how the JVM works under the covers? How the JVM is able to JIT-optimize the bytecode classes and what the generated output looks like? This session shows how a compiled Java class is loaded in memory, when the JIT optimizations occur, and what the generated assembly looks like for hot code in the JVM. The presentation also looks at current object layouts, how the memory settings affect how objects are stored, and what effects this can have for high-performance Java code.

You can register for the conference now and save yourself some money before the price goes up.

EclipseCon Europe – October

Optimising Eclipse Plug-ins – a look at common patterns and anti-patterns when writing plug-in code, and the tools and resources that are at your disposal as an Eclipse plug-in author in finding out how to identify and fix these issues. It’s currently scheduled for Thursday at 11 but this may change nearer thetime; so watch out for it on the schedule. From the abstract:

In this presentation, Alex will talk about optimising Java code in the context of Eclipse plug-ins, and demonstrate some of the tools that come with every JVM that can be used to inspect the state of a Java process. He will also present some Eclipse specific tools such as MAT and the show how some common patterns (and anti-patterns) can be found in existing plug-in code, and how they can be improved. By the end of this talk, the attendees should have a good idea of what tools are at their disposal and be able to apply that knowledge to reduce the memory footprint or perceived run-time by end users.

You can register for the conference now and save yourself some money before the price goes up.


August 10, 2016 07:00 PM

EMF Forms 1.9.0 Feature: Ecore Editor Reloaded … again

by Maximilian Koegel and Jonas Helming at August 10, 2016 09:04 AM

With Neon, we released EMF Forms 1.9.0. EMF Forms makes it really simple to create forms which edit your data based on an EMF model. To get started with EMF Forms please refer to our tutorial. In this post, we wish to outline one major highlight of release 1.9.0: a new version of the Ecore editor and a generic editor based on EMF Forms.

If you are following this blog, you might think this sounds familiar. We have actually already introduced the new editor framework in version 1.8.0. Please see this post for the initial introduction of the feature. However, with 1.9.0, we have improved those editors based on the feedback from several adopters. Therefore, we have now included the EMF Forms editors in our standard SDK, which makes them available in the Eclipse Neon Modeling Edition. So, if you use Neon, you can just right click any Ecore and select the “Ecore Editor” to use the new version.

image15

image09

We provide an alternative version of the good-old Ecore editor, the Genmodel editor and, probably most exciting: A generic editor, which can be used as a basis to implement tooling for your custom model. It is basically a replacement of the well-known “generated editor”, but it provides much more. Without any code generation you get a fully featured editor for you custom model, which can be customized using the full power of the EMF Forms view modeling approach.

image00

This EMF Forms editor is fully generic. Therefore no code generation is required. You only need to register the editor to the custom file extension for which you wish to use the editor. The following listing shows the registration for EMF model instances with a file ending “.task”. Please have a look at this tutorial to learn more about this.

<pre lang=”xml>

<extension point="org.eclipse.ui.editors">

    <editor class="org.eclipse.emfforms.spi.editor.GenericEditor" default="true" extensions="task" icon="pathToYourIcon" id="yourID" name="Your Editor Name"/>

   </extension>

</pre>

Please provide feedback by submitting bugs or feature requests or contact us if you are interested in enhancements or support.

 


TwitterGoogle+LinkedInFacebook

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


by Maximilian Koegel and Jonas Helming at August 10, 2016 09:04 AM

Why we moved from Mesos to Yarn (and from Chronos to Airflow)

by Michael (noreply@blogger.com) at August 10, 2016 05:59 AM

We run daily Spark jobs that generate various reports: retention, cohorts, user activity, life time value, etc., and recently we've found ourselves in a situation that one person must wear operator's hat for watching this process, and re-starting tasks once they are failed or (which is much worse) are stuck. 
Why this happened? There are many reasons for that. If you follow our tech blog you probably know that we run scheduled Spark jobs in Mesos on data stored in S3 either in SequenceFile or in Parquet format (here's good write-up about our process). It's funny that Spark was created as a proof of concept framework for Mesos, but it really seemed that these two guys are not playing together well enough. We tried enabling dynamic allocation, but we ended up running important jobs without it as they failed in 50% of cases because of some weird errors regarding lost shuffle blocks.
The most important issue was that sometimes Spark job would stuck on a last phase, and there was no way to revive it but enter the machine running this stuck executor via SSH, and kill the process. And this was part of the "operator" man's work. We suspected that this was related to Mesos somehow, but there was no proof.
Another problematic part in our pipeline was Chronos. Here are some issues that we encountered on daily basis:
  • Scheduled tasks were not executed. What??? Isn't it a scheduling framework? Right. But, sometimes, jobs depending on some parent task, which has finished successfully didn't run. Not that they didn't run on time - they didn't run at all.
  • The same job was executed twice. This event was rare, but if it happened for some task that wrote to Redshift DB it could lead to really bad user experience to those trying to query at the same time.
  • There is an option to specify multiple parent tasks, but this option simply didn't work.
And there were tens of other less important, but still annoying issues. Frankly, it looks like Chronos is not in intensive development anymore, or it has reached its level of perfection, but we're not aware of this fact :-)
So, to kill two birds with one stone, we've decided to move to Yarn (as a replacement for Mesos) and to Airflow (as a replacement for Chronos) at once. Configuring Yarn is not a simplest task, especially if your target is having a cluster that runs both Spark and Hadoop jobs on it (Hadoop is still required for indexing data into Druid). But after reading numerous articles, and looking how Amazon EMR is configured we've reached working configuration of Yarn cluster with HA, which allows Spark/Hadoop to utilize resources fully using dynamic allocation. Needless to say that no jobs are stuck anymore.
As for Airflow, the most important advantages over Chronos for us are:
  • Tasks in Airflow are defined programmatically, so it's easier to generate dynamic workflows when we want to rebuild some data for a given time frame.
  • Airflow written in Python, so it's really easy to hack and adapt it to your needs, or at least understand why something doesn't work as expected.
  • Multiple parents are allowed.
  • It's more stable.
  • It's in active development.
We are still testing this constellation of Yarn and Airflow, but for now it looks like it works much much better.
Enjoy our production workflow screenshot as a complement to this post :)


by Michael (noreply@blogger.com) at August 10, 2016 05:59 AM

Eclipse IoT Day @ Thingmonk: New speakers

by Ian Skerrett at August 09, 2016 03:03 PM

Last month we announced the Eclipse IoT Day @ Thingmonk on September 12 in London, UK. We have now added two new speakers:

  1. Boris Adryan from Zühlke Engineering will be talk about Information Models and Ontologies for IoT. I first met Boris when he was speaking at a previous Thingmonk. Boris is a great speaker and very knowledgeable about ontologies. It will be a great talk.
  2. Dan Gross from Samsung US will be speaking about the new Samsung ARTIK IDE that is based on Eclipse Che. It is exciting to see Samsung taking a serious look at how the developer tool experience needs to be specialized for IoT developers. I am looking forward to seeing how they are using Eclipse Che to make it easier to hack on the ARTIK board.

If you are interested in IoT, I highly recommend attending Thingmonk and the Eclipse IoT Day. London has an amazing IoT community so there is also a great opportunity to meet people doing real IoT solutions. To top it off, the registration price for the the Eclipse IoT Day is £50 and a pass that includes Thingmonk is just £200. Eclipse IoT community members can also receive at 25% discount off the 3 day price. E-mail iot@eclipse.org for more details.

I hope to see you in London.



by Ian Skerrett at August 09, 2016 03:03 PM

Call for Submissions: Modeling Symposium @ EclipseCon Europe 2016

by Maximilian Koegel and Jonas Helming at August 09, 2016 07:59 AM

We are happy to announce that Philip, Ed and I are organizing the Modeling Symposium for EclipseCon Europe 2016. Please support us by sharing the call on your communication channels.

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 September 9th.

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, eclipsecon, emf, modeling, eclipse, eclipsecon, emf, modeling


by Maximilian Koegel and Jonas Helming at August 09, 2016 07:59 AM

Avoiding Tragedy of the Commons

by Scott Lewis (noreply@blogger.com) at August 08, 2016 05:58 PM

Open source communities frequently struggle with the famous Tragedy of the Commons problem.   See the link for a description of the history and links to work.

There are, however, some recent ideas and associated research that have shown promise:

Commons-based peer production

Altruistic Punishment




by Scott Lewis (noreply@blogger.com) at August 08, 2016 05:58 PM