JavaFX

JavaFX

Logging Custom Controls

Logging.getCSSLogger().setLevel(sun.util.logging.PlatformLogger.Level.FINER);

TreeTableView

Hide Arrows

CSS Way:

/* Hide Arrow: not needed because the skin is adapted */ 
.tree-cell > .tree-disclosure-node > .arrow,
.tree-table-row-cell > .tree-disclosure-node > .arrow {
 -fx-shape: null;
 -fx-background-color: transparent;
}

Programmatic:

public class TappasTreeTableViewSkin<S> extends TreeTableViewSkin<S> {
  @Override
  public TreeTableRow<S> createCell() {
    TreeTableRow<S> cell;

    if (getSkinnable().getRowFactory() != null) {
      cell = getSkinnable().getRowFactory().call(getSkinnable());
    } else {
      cell = new TreeTableRow<S>();
    }
  }
  ..
}

JavaFX 8 BUG: Virtualisierung bricht bei Verwendung eine TreeTableView.fixedCellSize>-1

 

Möglich Lösung:

private VirtualFlow<TreeTableCell<S, ?>> myFlow = new VirtualFlow<TreeTableCell<S, ?>>() {
/*
 *
 */
 protected void resizeCellSize(TreeTableCell<S, ?> cell) {
 super.resizeCellSize(cell);
if (cell == null)
 return;
double fixedCellSize = getSkinnable().getFixedCellSize();
 boolean fixedCellSizeEnabled = fixedCellSize != -1;
// possible bug fix by calling checkState with parameter false to set
 // TableRowSkinBase.isDirty to true and thus prevent from recreating
 // cells
 // if (fixedCellSizeEnabled)
 // ((TableRowSkinBase) cell.getSkin()).checkState(false);
if (isVertical()) {
 double width = cell.getWidth();
cell.resize( width, fixedCellSizeEnabled ? fixedCellSize : cell.prefHeight(width));
 } else {
 double height = cell.getHeight();
 cell.resize(
 fixedCellSizeEnabled ? fixedCellSize : cell.prefWidth(height), height);
 }
 }
 };

Maven in a Nutshell

Maven in a Nutshell

Download Maven Sources

When you’re using Maven in an IDE you often find the need for your IDE to resolve source code and Javadocs for your library dependencies. There’s an easy way to accomplish that goal.

 # mvn dependency:sources
 # mvn dependency:resolve -Dclassifier=javadoc

The first command will attempt to download source code for each of the dependencies in your pom file.

The second command will attempt to download the Javadocs.

Running Integration Tests for Play 2.0 Application fromInside The Scala IDE

Running Integration Tests for Play 2.0 Application fromInside The Scala IDE

Instrcutions:

 

Problems:

Exception:

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory
at play.test.Helpers.running(Helpers.java:430)
at IntegrationTest.test(IntegrationTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at …

Caused by: java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory
at com.gargoylesoftware.htmlunit.WebClient.createWebConnection(WebClient.java:2030)
at com.gargoylesoftware.htmlunit.WebClient.<init>(WebClient.java:124)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.newWebClient(HtmlUnitDriver.java:283)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.createWebClient(HtmlUnitDriver.java:254)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.<init>(HtmlUnitDriver.java:129)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.<init>(HtmlUnitDriver.java:172)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.<init>(HtmlUnitDriver.java:168)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at 

  • Problem 1: Doppelte Referenz auf httpclient (4.0.1 und 4.1.2) > NOT WOKRING, due to jQuery.min.js cannot be found anymore
    • Lösung:
      • Upgrade auf Version 2.1.3 hilft auch nicht
      • Referenz auf httpclient 4.0.1 entfernen funktioniert erstmal, allerdings werden dann keine Javascript-Dateien mehr gefunden.
  • Problem 2: Avaje Ebean Reference in JUnit Testcast

Scala

Interesting Scala Libraries

  • ScalaTest
    • Testfälle im Stil von Behaviour Driven Development schreiben
    • textuelle Beschreibung wird 1:1 in Testreport übernommen
    • deshalb Konkurrenz zu JUnit
  • ScalaLogging
  • REST/HTTP-Toolkit spray
  • Akka

Collections

Inline Variables

@defining(user.firstName + " " + user.lastName) { fullName =>
  <div>Hello @fullName</div>
}

Java Anwendung hinter Proxy starten

Java Anwendung hinter Proxy starten

Problem:

“Wir hatten heute wieder (wie auch in letzter Zeit immer mal) das Problem, dass jemand versucht eine Java-Anwendung die externe Webdienste verwendet zu starten und dies im Saxonianetz nicht funktioniert.

Eclipse startet hierbei die Anwendung in einem javaw Prozess. In diesem wird einerseits auf unseren Proxy zugegriffen (ohne dass im Proxylog erkennbar ist warum), andererseits aber trotzdem versucht direkte Verbindungen zu dem jeweiligen Webdienst aufzubauen.

Die Netzwerk-Einstellungen in der Systemsteuerung für Java sind auf „Browsereinstellungen verwenden“ gesetzt. Das sollte dazu führen dass er die Einstellungen des Internetexplorer verwendet und da unseren Proxy nutzt.

Ohne Proxy im IE geht es leider auch nicht, obwohl wir auf jedem Rechner ja den TMG Proxy Agent haben der dafür sorgen soll alle TCP Verbindungen, die nicht selbst über den Proxy laufen, über den Proxy umzuleiten.

Unsere Frage, hat das jemand schon mal gehabt und erfolgreich lösen können?” Benutzt wurde 1.7u21. Eine 1.7u10 hatte jedoch dasselbe Problem.

Lösung:

-Djava.net.preferIPv4Stack=true beim starten der JVM mitgeben. Falls es Eclipse ist, kann man auch einfach den Proxy konfigurieren: Preferences > Network Connections 😉

Maven

Hallo, bei Maven scheint das auch zu klappen. Sollte also generell im Saxonianetz so Anwendung finden wenn es Probleme gibt. Wenn ihr die Option für euer Profil bzw. euren Rechner global festlegen wollt, könnt ihr das über die Kommandozeile in die Registry schreiben lassen:

Für den angemeldeten User:

setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true

Für alle User (lokale Adminrechte):

setx /m _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true