itemis blogs

My Lightweight Release Process

Stefan Oehme

"If it's not on Maven Central, it doesn't exist!"

I always feel sad when I see a nice little library and the usage instructions say something like "download the jar and put it on your project's classpath". It's 2014 and your project deserves to be in a public repository!

But getting it there can be tedious without the right tools. Not only should you build a jar, you also want sources and javadoc, all of them digitally signed. On top of that you need to provide lots of metadata [...]

Travis CI: Replicating Environment Variables

Stefan Oehme

I have quite a few open source projects that I wish to build/release automatically on pushes/tags. For the release, I need the same environment variables (passwords and API keys) in all of my builds. Unfortunately, Travis currently only allows setting them per project. This quickly becomes annoying, especially if you ever have to change a password.

I worked around this by having a seed job where I configure these variables. That job then uses the Travis Ruby-API to push those variables [...]

Injizierbare Logger mit CDI

Dominik Pieper

Mit CDI Producern lassen sich die Logger Konfigurationen der Form [crayon-54939bc961073764785055/] in jeder Klasse umgehen. Es ist möglich, einen Logger einfach mit der @Inject Annotation zu injizieren. Hierzu gibt es als Gegenstück zu @Inject die Annotation @Produces (siehe CDI – JSR 299) Um den Logger überall injizierbar zu machen, wird eine Producer Klasse gebraucht: [crayon-54939bc961094073684944/] […]

Ideas for Clojure GUI libraries

Falko Riemenschneider

Ideas for Clojure GUI libraries15.12.2014 Permalink Earlier this year I published a prototype to combine JavaFX with core.async to overcome some problems that I never solved in plain Java. Very recently, I sensed some interest in that prototype so I write a public post about my thoughts. At the moment I have no plans to evolve async-ui as-is into a library, because it deals with numerous problems at once, i.e. it is not simple, and creating a GUI framework [...]

AngularJS Module für Minification vorbereiten

Dominik Pieper

Minification wird bei Javascript Projekten oft verwendet, um die auszuliefernde Datei zu verkleinern. Hierbei werden Leerzeichen, Zeilenumbrüche und Kommentare entfernt, sowie Variablennamen verkürzt. Das Verkürzen der Variablen führt bei AngularJS jedoch zu einem Problem. AngularJS leitet die Abhängigkeiten zur Injizierung anhand des Variablennamens ab. Da die Variablennamen bei der Minification aber verkürzt werden, können die […]

My quest for drastically simpler browser UIs

Falko Riemenschneider

My quest for drastically simpler browser UIs03.12.2014 Permalink A web application built with significant amounts of JavaScript code running inside the browser is a viable UI technology choice. Even in a conservative environment, teams can today legitimately decide to ignore traditional Java web UI frameworks like JSF, Spring MVC, Wicket, Tapestry etc. in favor of purely JS based libraries like AngularJS, Ember or React which usually results in single-page applications [...]

My quest for drastically simpler browser UIs

Falko Riemenschneider

My quest for drastically simpler browser UIs03.12.2014 Permalink A web application built with significant amounts of JavaScript code running inside the browser is a viable UI technology choice. Even in a conservative environment, teams can today legitimately decide to ignore traditional Java web UI frameworks like JSF, Spring MVC, Wicket, Tapestry etc. in favor of purely JS based libraries like AngularJS, Ember or React which usually results in single-page applications [...]

IAdaptable - GEF4's Interpretation of a Classic

Alexander Nyßen

Adaptable Objects as a Core Pattern of Eclipse Core RuntimeThe adaptable objects pattern is probably the most important one used by the Eclipse core runtime. Formalized by the org.eclipse.core.runtime.IAdaptable interface, an adaptable object can easily be queried by clients (in a type-safe manner) for additional functionality that is not included within its general contract.public interface IAdaptable {  /**
   * Returns an object which is an instance of the given [...]

Xtend - Active Annotations : Localization

Stefan Oehme

Last time we took our first steps at implementing Xtend Annotation Processors. We did some simple modifications to the Java AST. This time we want to automate a much more involving pattern: Localization and ResourceBundles.

In Java you usually use .properties files to supply localized Strings for the UI. The ResourceBundle API allows you to access them in an untyped way using String constants. If you want more convenience, you need a static facade like this:

Writing this by [...]

svn: missing argument: –password

kthoms

I am currently setting up the Maven Release Plugin for a project which is stored in a SVN repository. The plugin needs to do modifications in the repository, for which it executes a svn command. The credentials it gets from … Continue reading →