Ausdrücke mit der ScriptEngine auswerten

Immer wieder nützlich: die ScriptEngine in Java (oder auch in Groovy) ermöglicht das einfache Auswerten von Ausdrücken. Hier ein kleines Beispiel (in Groovy, lässt sich aber mit minimaler Anpassung in Java umsetzen (Cast in Zeile 7 und Alternative Ausgabe in Zeile 8)):

1
2
3
4
5
6
7
8
9
10
11
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
 
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
try {
  Boolean result = jsEngine.eval("a=19; b=2; c=2; a>b && c==b");
  print "Ergebnis: " + result;
} catch (ScriptException ex) {
    ex.printStackTrace();
}

In diesem Fall wird Ergebnis: true auf der Konsole ausgegeben. Dies nur zur Inspiration – die Vielfalt der Möglichkeiten lässt sich nun bestimmt schon erahnen …

Maven Jetty Port einstellen

Nachdem ich nun schon mehrmals nachschlagen musste, schreibe ich es hier als „Merkzettel“ auf: Was muss man in die pom.xml schreiben, damit Jetty bei mvn jetty:run auf einem gewünschten Port startet (im Beispiel 8088). Darüber hinaus soll die Applikation direkt im Webroot verfügbar sein. Folgender „POM-Schnipsel“ erledigt dies:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>maven-jetty-plugin</artifactId>
  <configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8088</port>
      </connector>
    </connectors>
    <webAppConfig>
      <contextPath>/</contextPath>
    </webAppConfig>
  </configuration>
</plugin>

Die Anwendung sollte nun unter http://localhost:8088/ verfügbar sein.