JPath
JPath ist ein Java-Framework, das XPath-ähnliche Funktionalität im modernen Fluent-Stil für Java-Objekte bereitstellt. Es ist einerseits eine Spezifikation, die jedoch gleich eine Implementierung mitliefert. Sie können ganz einfach Filter nutzen oder selbst schreiben, die Ihnen ein bestimmtes Objekt oder beliebig viele Objekte mit bestimmten Eigenschaften aus einem Objektgraphen zurückliefern oder bestimmte Werte auf selbigen setzen. Es ist somit bestens für produktive als auch für Test-Zwecke geeignet.
Das folgende Beispiel zeigt, wie man alle Kind- und Nachfolger-Objekte einer Instanz myObject ermitteln kann, die eines bestimmten Typs CertainType sind. Zurückgegeben wird eine Collection, welche die ausgewählten Objekte enthält.
JPath.getSelector()
.descendants()
.retain(CertainType.class)
.select(myObject);
Im folgenden Quelltext werden alle Beans einer Anwendung herangezogen und überall ein Mock-Service für den richtigen Service eingesetzt. Für Unit-Tests und vieles mehr ungeheuer praktisch.
JPath.getWriter()
.children()
.retain(MyService.class)
.SetTo(myMockService)
.process(getBeans());
Derzeit gibt es noch kein finales Release, das zum Download verfügbar wäre. Bitte gedulden Sie sich noch ein klein wenig bis Ende Februar.