Gurken-Test mit Cucumber

Mit Cucumber können Testfälle schön in Worte beschrieben werden. Hier mal ein schneller quick Einstieg.

Eine Testfall Beschreibung kann in Worten mit der Gherkin Syntax geschehen, z.B diese kalender.feature:

In Eclipse sind die JUnit-Test auch schön lesbar, z.B.:

Für Eclipse gibt es ein Natural 0.7.6 Plug-In für die *.feature Dateien. Das kann leicht über den Eclipse Marketplace installiert werden:

Einfach alles installieren:

Die Testfall implementierung kann z.B. so aussehen. Dieser Testfall gibt nur einen Kalender auf der Konsole aus, deshalb gibt es nur das Generieren:

Eine Testklasse zum starten des Testfalls:

Folgende Abhängigkeiten werden in der pom.xml benötigt:

Das ganze Testprojekt kann auf Github geladen werden.

Eine weitergehende Anleitung auf deutsch gibt es hier.

Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?

In älteren OSGI Versionen konnte die Konsole einfach über einen Aufruf:

gestartet werden. In neueren Versionen läuft es nicht mehr. D.h. es gibt noch nicht einmal eine Fehlermeldung.

Die neue Konsole ist nun Teil von der Apache Felix Gogo shell. Ab dem Eclipse Release 4.4 (Luna) ist die Built-in OSGi-Konsole komplett von dem Equinox Framework entfernt worden. „Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?“ weiterlesen

Java News zu der am 22.06.2016 veröffentlichten Eclipse Neon 4.6 Version

Hier eine schöne Aufzählung der Neuerungen der neuen Eclipse Neon Version.

Bildschirmfoto 2016-06-29 um 21.39.14

Bildschirmfoto 2016-06-29 um 21.38.42

Cool:

Content Assist now supports substring patterns. Enter any part of the desired proposal’s text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.

The Refactor > Rename popup now shows an Options… link which opens the full Rename dialog that provides more options like renaming a field’s getter and setter methods.

You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):

Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1

Die UML 2.5 Umgebung Papyrus läuft auch unter Eclipse Mars.1 und bietet u.a. folgende Diagramme:

  • Class Diagram
  • Object Diagram
  • Package Diagram
  • Composite Structure Diagram
  • Component Diagram
  • Deployment Diagram
  • Profile Diagram
  • Use case Diagram
  • Activity Diagram
  • State machine Diagram
  • Communication Diagram
  • Sequence Diagram
  • Timing Diagram
  • Interaction overview Diagram

Die Installation läuft „Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1“ weiterlesen

UML Designer 5.0 für Eclipse Mars.1 installieren

Für die aktuelle Eclipse Mars.1 Version

eclipse mars.1gibt es einen kostenlosen UML 2.5 Designer. Mit ihm können ua. folgende Diagramme modelliert werden, wie auf der Homepage zu sehen:

  • Package Hierarchy Diagram
  • Class Diagram
  • Component Diagram
  • Composite Structure Diagram
  • Deployment Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Machine Diagram
  • Sequence Diagram
  • Profile Diagram

„UML Designer 5.0 für Eclipse Mars.1 installieren“ weiterlesen

Eclipse PlugIn SortIt zum schnellen sortieren nach Länge, Buchstaben oder Nummern

Sortierung von Text ist doch hin und wieder mal nötig. Das Eclipse Plugin SortIt ist zwar schon älter, läuft aber immer noch mit der aktuellen Eclipse Mars 4.5.0 Version. Es kann wie alle anderen Plugins installiert werden.
Cooles Plugin
Die Updateseite die unter dem Menü: Help->Install new Software eingetragen werden muss lautet:

Dann durch den Installationsvorgang gehen:

SortIt „Eclipse PlugIn SortIt zum schnellen sortieren nach Länge, Buchstaben oder Nummern“ weiterlesen

Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?

Hier am Beispiel von einem Arzt und einer Adresse. Wenn nun von der Adresse auf den Arzt und umgekehrt navigiert werden soll, kann die bidirektionale Verbindung im Feld EOpposite wie folgt eingetragen werden (rechts auf den Pfeil der Combobox klicken):

opposite
„Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?“ weiterlesen

Ecore: Wie kann ein Java Attribut für die Hibernate Suche im Ecore Modell annotiert werden?

Wie kann in einer Java Klasse ein Attribut für die Hibernate-Suche wie folgt annotiert werden?

Dazu folgende EAnnotation als Value mit den voll qualifizierter Namen einfügen, damit auch die imports aufgelöst werden können

ecore value

ecore annotation

Und für die Maven pom.xml, den folgenden Eintrag, damit die Hibernate Klassen auch gefunden werden können:

Eclipse go to Mars 4.5 Release oder wie wird Eclipse Mars auf dem Mac OS X installiert?

Heute ist die Mars 4.5 Version von Eclipse veröffentlich worden. Was gibt es neues?
Ok, dann mal auf die Mars Download Seite und das Programm laden. Ich war übrigens der 6,666 Download!

Für den Mac geht es jetzt super einfach.

Installation

Download des Eclipseeclipse-jee-mars-R-macosx-cocoa-x86_64.tar.gz oder andere gewünschte Version.
Dann einen doppelklick auf die Datei zum entpacken. Nun noch die Eclipse.app in das Programme Verzeichnis verschieben. Dann das Programm starten durch einen doppelklick auf Eclipse.app. Das geht gefühlt schneller als vorher!

Mehr ist für die installation auf einem Mac nun nicht mehr nötig. Hier die IDE, mit den Versions Dialog:
Eclipse Mars

Mars, das war’s. That’s it. Happy coding!

Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?

Für die meisten Java Projekte braucht man ein BE-Model, das am besten automatisch generiert wird. Wie kann das innerhalb von Eclipse Luna mit dem EMF durchgeführt werden?

Wir wollen diese Modell Stuktur erzeugen. Eine Mindmap hat 0-* Zweige:

BE

Zuerst Texo und EMF installieren.

Dann ein neues EMF Projekt anlegen über das Menü: File - New - Other:
EMF

Nun erstellen wir ein ecore Model über das Menü: File - New - Other - Eclipse Modeling Framework-Ecore Model:

model

So sieht das Projekt nun aus, mit der mindmap.ecore Model Datei:
eclipse ecor

Nun erzeugen wir zwei Klassen mit ein paar Attribute über New Child - New EClass über das Kontextmenü des Models (2.Zeile): „Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?“ weiterlesen

Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?

Wer eine MySQL Datenbank auf seinen Rechner installieren will, muss sich die Packages die zu installieren sind, auf der MySQL Homepage zusammen suchen.

Folgende drei Komponenten müssen für Mac OS X geladen und installiert werden (für Windows analog):

1. MySQL Community Server 5.6.24 von https://dev.mysql.com/downloads/mysql/

Für den Mac OS X 10.9 (x86, 64-bit), DMG Archive 5.6.24 167.6M mysql-5.6.24-osx10.9-x86_64.dmg. Installation.

2. MySQL Workbench 6.3.3
von http://dev.mysql.com/downloads/workbench/

mysql-workbench-community-6.3.3-osx-x86_64.dmg. Installation.

Die Workbench kann dann aus dem Programm Verzeichnis über das folgende Programm-Icon gestartet werden:
workbench

3. Connector/J 5.0.8 für Java für alle Betriebsysteme von https://dev.mysql.com/downloads/connector/j/5.0.html

Download mysql-connector-java-5.0.8.zip und z.B. in das Verzeichnis
/usr/local/mysql-5.6.24-osx10.8-x86_64/mysql-connector-java-5.0.8.jar kopieren.

Wenn alles installiert wurde, kann der DB Server über die Systemsteuerung mit dem MySQL Icon unten rechts gestartet werden:
mysql „Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?“ weiterlesen

Eclipse Plug-in: Wie können Resourcen von einem Plug-in in einem anderen Plug-in gelesen werden?

Manchmal möchte man die Resourcen wie Bilder oder Dateien aus einem anderen Eclipse Plug-in lesen. Also wie können Resourcen von einem Plug-in, in einem anderen Plug-in gelesen werden?

Siehe auch hier.

Wie kann der Plug-in Spy für UI Teile oder der Menü Syp auf dem Mac (Win) von Eclipse aufgerufen werden?

Wenn man in Eclipse sehen will, welche UI Komponenten gerade selektiert bzw. aktiv sind, kann der Plug-in Spy verwendet werden. Mit dem kann auch mit nur einen klick auf den Quellcode des jeweiligen aktiven Plug-ins zugegriffen werden. Wie kann der aber auf einem Mac aufgerufen werden (Vier Tasten gleichzeitig): fn+shift+alt+F1 (auf Windows Alt+Shift+F1)
Es erscheint dann solch ein PopUp-Dialog:
Eclipse Spy
und noch ein Beispiel:
Popup Spy

Analog dazu gibt es auch einen Spy für die Menüs, der wird mit fn+shift+alt+F2 (auf Windows Alt+Shift+F2) aufgerufen und dann ein Menüpunkt auswählen, es kommt dann z.B. dieser Dialog:
Menü Spy

Eclipse PlugIn: Wie kann Text im Konsolen Fenster ausgegeben werden?

Manchmal möchte man einfach nur Text in der Konsole ausgeben. Früher, d.h. vor Eclipse 3.0 musste man dazu eine eigene View erzeugen. Das braucht man nun nicht mehr, man kann die vorhandenen generic Log Konsole verwenden.

Aufrufen geht dann einfach so:

Hier die Methode, die die Konsole liefert bzw. erzeugt:

Wir erhalten dann folgenden Ausgabe:

Log Konsole von Eclipse
Log Konsole von Eclipse

Um das zu erreichen, muss noch eine neue Abhängigkeit ( org.eclipse.ui.console) (Dependencies) ergänzt werden:

Abhängigkeit Eclipse View
Was zu folgenden Eintrag im Manifest führt:
Manifest

Eclipse PlugIn: Wie kann ein Logeintrag in der Error Log View erstellt werden?

Bei der PlugIn Programmierung unter Eclipse Luna kann leicht auf die Log-View zugegriffen werden. Hier mal ein kleines Beispiel mit den verschiedenen Loglevel:

So sieht es dann aus:

Eclipse Log Eintrag erstellen
Eclipse Log Eintrag erstellen

Eclipse Plugin: Wie kann der absolute Dateipfad einer selektierten Datei aus der View des Package oder Project Explorer ermittelt werden?

Wie kann in Eclipse Luna 4.4.1 aus einem Plugin der absolute Dateipfad einer selektierten Datei aus dem Package oder Project Exporer ermittelt werden?
Das Selection Service wird ja schön hier beschrieben.
Befindet man sich nicht in einer View, sondern in einer Action, kann folgende Methode verwendet werden:

Der Test liefert jeweils den Pfad inkl. Dateiname:

Braucht man das Plattform Arbeisverzeichnis kann man dies über die folgende static Methode erhalten:

Wie kann mit dem Mac OS X unter Eclipse ein JavaFX Programm erstellt werden, da Swing in Java 8 deprecated ist?

Es muss die JavaFX lib dem Classpath hinzugefügt werden. Die liegt auf dem Mac unter:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar

Dann z.B. ein Klasse von javafx.application.Application ableiten und die start Methode überschreiben. Wir wollen nur einen Button anzeigen, der seinen Text bei klick ändert. Hier der ganze JavaFX Code:


package de.wenzlaff;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

// Classpath um JavaFX jfxrt.jar ergänzen, es liegt in:
// /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfxrt.jar

public class StartFxGui extends Application {

private Button button;

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage stage) throws Exception {

button = new Button("Mein erstes JavaFX Programm!");
button.setOnAction(new EventHandler() {

@Override
public void handle(ActionEvent arg0) {
button.setText("cool");
}
});

VBox root = new VBox();
root.getChildren().add(button);
Scene scene = new Scene(root, 200, 200);
stage.setScene(scene);
stage.show();
}
}

Und hier das Foto mit dem Ergebnis:
Bildschirmfoto 2014-03-05 um 20.21.19

Was geschied wenn der Button geklickt wird?
Bildschirmfoto 2014-03-05 um 20.21.38

Kostenloser Reiseführer für die Südkaribik-Kreuzfahrt mit der Eclipse zum downloaden

Hier der kostenlose Reiseführer (pdf 24 MB, 85 Seiten) zum Download (erstellt mit der Wikipedia Buchfunktion, also warum noch Reiseführer kaufen?), für die Südkaribik-Kreuzfahrt mit der Eclipse mit folgenden Zielen:

  • Miami (USA)
  • Fort Lauderdale, Florida (USA)
  • Aruba (Oranjestad)
  • Curacao (Willemstad)
  • St. Georges (Grenada)
  • Bridgetown (Barbados)
  • Castries (St. Lucia)
  • St. Johns (Antigua)
  • Philipsburg (St. Maarten)
  • Charlotte Amalie (St. Thomas)

Persönliche Fotos folgen …

Wie installiert man eine kostenlose VirtualBox von Oracle auf dem Mac OS X (oder Windows, Linux) in 5 Minuten?

Von VirtualBox die VirtualBox 4.3.2 for OS X hosts
und VirtualBox 4.3.2 Oracle VM VirtualBox Extension Pack downloaden. Es muss ja nicht immer eine virtuelle Maschine von VMware oder Parallels sein.

VirtualBox und Extensions Pack installieren.

Starten von VirtualBox:
Bildschirmfoto 2013-11-07 um 18.12.11

So, jetzt kann in der virtuelle Maschine Linux installiert werden. Die Anleitung zu VirtualBox ist hier {PDF} zu finden.

Coole Anleitung auf Deutsch. Habe das alles installiert mit neuem Debian CD Image (7.2.0). Eclipse läuft super…
Bildschirmfoto 2013-11-07 um 22.11.40

Und das gestartete Eclipse Kepler:
Bildschirmfoto 2013-11-07 um 22.12.58

Tip der Woche: Wie können formatierungen für Eclipse im Quellcode für bestimmte Bereiche ausgeschaltet werden?

Hat man mühsam den Quellcode eingerückt, für SQLs oder bestimmte Variablen oder Konstanten und man möchte nicht, das dieser Code wieder durch die automatische Formatierung verloren geht wie in diesem Beispiel:
Bildschirmfoto 2013-11-03 um 12.15.28
Dann kann man zwei Tags definieren in:
Bildschirmfoto 2013-11-03 um 12.16.31
Dann auf Edit klicken. Auf dem letzten Tab unter Off/On Tags können belibige Tags definiert werden:
Bildschirmfoto 2013-11-03 um 12.16.48
und schon bleibt der Quelltext zwischen den Tags, so wie angegeben.

In Projekten müsste man sich dann aber auf Tags für alle einigen und in der Systemweiten XML festschreiben, sonst würde jemand anderes, der die Datei ausscheckt und den Tag nicht definiert hat, alles wieder umstellen.