JON 3 und Alerts

Ich sollte Beta-Tester bei RedHat werden: ich habe drei Cases im Support-Portal aufgemacht und es sind zwei Bugs aufgemacht worden. Dieses Mal habe ich einen OutOfMemory-Alert aufgesetzt: Ziel war es, dass ein Alert ausgelöst wird, wenn ein java.lang.OutOfMemory-Error im server.log-file des JBoss auftaucht. Dazu habe ich einen Alert und einen entsprechenden Recovery Alert definiert. Problem war: der Recovery Alert hat nicht gezogen. Das Problem war, dass ich die Availability des Recovery Alerts auf “Comes up” gesetzt habe, was offensichtlich nicht funktioniert. Ein Workaround ist, dass ein zusätzlicher Event auf den Start des App-Servers gelegt wird (“Started in:”), was aber sehr unschön ist, da der JON dann mit Events zugespamt wird. Wie dem auch sei: hier ist der Bug zu finden.

Update: Hach, geht auch nicht … so muss es sein: bei “Condition” muss “Operation Execution [restart] with result status [SUCCESS]” eingestellt werden, dann geht es. Darüber hinaus hatte ich das Problem, dass der Restart immer Timeouts bekommen hat, nach dem Ändern der Log4j-Konfiguration (!!!) hat es dann funktioniert. Sehr sonderbar, zumal der Restart als Skript implementiert ist und explizit nicht über JMX. Irgendwie macht mir das ernsthaft Bauchschmerzen …

flattr this!

Plugins für JON … und Maven

Diese Woche habe ich ein wenig mit JON 3 rumgespielt und wollte natürlich auch ein kleines Plugin schreiben. Also habe ich mir eine working copy des Git-Repositories von RHQ ausgecheckt und versucht, die “samples” mit “mvn install” zu bauen. Leider musste ich feststellen, dass das nicht funktioniert:


[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.custom:simplereport-serverplugin:jar:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 91, column 18
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building RHQ Simple Report Server Plugin 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ simplereport-serverplugin ---
[INFO] Deleting C:\data\git\rhq\simplereport-serverplugin\target
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ simplereport-serverplugin ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ simplereport-serverplugin ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\data\git\rhq\simplereport-serverplugin\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------

Meine erste Annahme war, dass ich irgendwo einen Fehler gemacht habe, die pom-Files sahen aber in Ordnung aus, also habe ich mich an den RedHat-Support gewandt. Ergebnis: das ist leider ein Bug, der immer auftritt, wenn kein RHQ-Maven-Repository vorhanden ist bzw. wenn dieses leer ist. Sehr unschön.

flattr this!

100 Tage Piratenpartei

“Von Null auf 15 – Fünfzehn Abgeordnete der Piratenpartei wurden am 18. September 2011 ins Berliner Abgeordnetenhaus gewählt. Ein Erfolg, der seit den Grünen keiner anderen Partei-Neugründung in Deutschland mehr gelungen ist. Innerhalb weniger Wochen liegen sie in den Umfragen bundesweit zwischen 8 und 10 %. Nicola Graef und Torsten Mandalka begleiten vier Abgeordnete während ihrer ersten 100 Tage im Berliner Parlament: Andreas Baum, den Fraktionsvorsitzenden und besonnenen Vermittler zwischen den parteiinternen Strömungen; Susanne Graf, die einzige Frau und die mit 19 Jahren jüngste Abgeordnete; Christopher Lauer, enfant terrible und “Medien-Rampensau’; Schließlich: Martin Delius, der redegewandte parlamentarische Geschäftsführer der Piratenfraktion in Berlin.”

Piraten in der Politik – 100 Tage einer Aufsteigerpartei

flattr this!

Angriff der Mond-Nazis!

Oder so ähnlich … was ich eigentlich sagen wollte: Iron Sky ist fertig, no shit!

Und der Film wird bei der Berlinale gezeigt, ist das nicht großartig, hach ….

Und hier ist der Constantin Gonzalez kurz zu sehen, wie klein die Welt doch ist.

flattr this!

The Megaupload-Song

Megaupload, der Song! Woohooo!

Und hier war er mal bei Harald Schmidt, ein wenig unsympathisch, wie mir scheint:

flattr this!

Hungermarsch und Laptop-Poser

flattr this!

BED-Con

Ich habe eben zum ersten Mal einen Vorschlag für einen Talk eingereicht und zwar bei der BED-Con 2012. Thema des Talks ist (natürlich) der JBoss 7 und wie die Neuerungen des Application Servers im Alltag sinnvoll nutzbar sind. Drückt mir die Daumen, dass das Komitee den Vorlschlag annimmt.

flattr this!

Das neue Kettcar-Album …

Bald ist es da! Ich freue mich, Konzertkarten habe ich für den 23.03. auch schon. Hier das erste Video:

flattr this!

JBoss 7 und Arquillian

Das Testen von J2EE war ja immer pain in the ass, dass kam JEE mit EJB 3, alles war ein POJO und siehe da: man brauchte keinen Application-Server mehr, um seine Logik zu testen (in den meisten Fällen zumindest). Dann kam Arquillian, weil man sah, dass man ggf. doch mal einen Application-Server benötigt für sinnvolle Tests. “Arquillian enables you to test your business logic in a remote or embedded container”, so steht es auf der Webseite und da ich ein ungeduldiger Mensch bin, der immer mit dem blutige-Kante-Spielzeug spielen möchte, habe ich mir vorgenommen, Arquillian zusammen mit dem JBoss 7 CR1b zu testen. Nach einem guten Tag, diversen Flüchen und viel Google-Magic hatte ich dann endlich eine lauffähige Variante implementiert. Als zusätzliche Schwierigkeit habe ich mir gedacht, dass eine Maven-Integration eine feine Sache sei. Problematisch war auch, dass die Arquillian-Doku auf der Webseite etwas veraltet ist, was die Problemlösung signifikant erschwert hat. Wie dem auch sei, im Folgenden ist mein Ansatz zu sehen:

1) Ich habe mir nicht die Mühe gemacht, die Dependencies der einzelnen Maven-Module per Hand aufzulösen (mit den unterschiedlichen Versionen), glücklicherweise gibt es ein DependencyManagement-Modul für Arquillian:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.0.0.CR7</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

2) Die einzelnen Dependencies lauten wie folgt:

<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-arquillian-container-managed</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>

In diesem Fall habe ich die managed-Variante (eine andere JVM, der selbe Rechner) genommen, weil embedded-Variante (die selbe JVM) zur Zeit nicht implementiert ist. Ich hoffe, das ändert sich noch.

3) Meine arquillian.xml-Datei sieht folgendermaßen aus:

>?xml version="1.0" encoding="UTF-8"?>
>arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
>engine>
>property name="deploymentExportPath">target>/property>
>/engine>
>container qualifier="jbossas7">
>protocol type="jmx-as7">
>property name="executionType">REMOTE>/property>
>/protocol>
>configuration>
>property name="javaHome">C:/Java/jdk1.6.0_27>/property>
>property name="jbossHome">C:/jboss-as-7.1.0.CR1b>/property>
>property name="managementAddress">127.0.0.1>/property>
>property name="managementPort">9999>/property>
>/configuration>
>/container>
>/arquillian>

4) Meine persistence.xml-Datei war – mehr oder weniger – eine Standard-Datei, die auf die hsqldb verwiesen hat.
Der eigentliche Test war etwas komplexer, z.B. habe ich statt @EJB die CDI-Annotation @Inject verwendet, da die andere Annotation nicht funktioniert hat. Mein Template für Testklassen sieht folgendermaßen aus:


@RunWith(Arquillian.class)
public class FooBarDaoArqTest {

@Deployment
public static JavaArchive createTestArchive() {

return ShrinkWrap
.create(JavaArchive.class, "test.jar")
.addClasses(FooBarDao.class, ...)
.addAsManifestResource(
new File("src/test/resources/persistence.xml"),
ArchivePaths.create("persistence.xml"))
.addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));

}

@Inject
private FooBarDao dao;

@PersistenceContext(unitName = "ExampleDS")
private EntityManager em;

@Before
public void setUp() throws Exception {
HibernateEntityManager hem = em.unwrap(HibernateEntityManager.class);
Session session = hem.getSession();
...
}

@Test
public void testCRUD() throws Exception {
...
}

Damit ist es nun möglich, Arquillian mit JBoss 7 CR1b und Maven zu verheiraten.

flattr this!

IKEA-Black-Belt

Die ersten zwei Wochen in Berlin sind rum und die Lage normalisiert sich langsam: nahezu alle Möbel sind aufgebaut (IKEA-Black-Belt, U know), fast alle Umzugskartons sind ausgepackt, Internet ist wieder am Start und “der Kiez” (sagt man hier so, glaube ich) ist erkundet. Was mich positiv überrascht ist die Zuverlässigkeit des ÖPNV, no shit. Ich hatte mir schon Horror-Szenarien ausgemalt, man hört ja so einiges, aber es ist alles recht geschmeidig. Die S-Bahnen sind nicht zu voll, die Tram-Bahn fährt regelmäßig, alles prima … OK, manchmal stinkt die S-Bahn ziemlich nach Urin, aber hey … ich muss ja nur vom Alex bis zur Warschauer Straße fahren, alles kein Problem … und überhaupt: Alexanderplatz, du geile Sau! Da wir ja Fitness-Nazis sind, mussten wir uns ja sofort in einem Studio anmelden und die Wahl ist auf das Fitness First am Alexanderplatz gefallen. Sehr geile Aussicht, hat was … Was mir echt nicht so zusagt ist, dass der Berliner anscheinend auf seine Stadt scheisst und gerne mal die Straßen zumüllt, was mir doch ein wenig zuwider ist. Das ist eine der Sachen, die mir in München sehr gut gefallen: die Menschen achten auf ihre Stadt, siffen sie nicht zu und randalieren nicht. Berlin, da geht noch was!

flattr this!