Archiv für die Kategorie: “Java”
Kent Beck’s neues Projekt JUnit Max ist ein Eclipse Plugin, das JUnit Tests automatisch nach dem Speichern einer Java Datei im Hintergrund ausführt. Somit bekommt man als Entwickler unmittelbar Feedback, wenn sich ein Fehler eingeschlichen hat. Fast schon eine Art von lokalem Continuous Integration. Eine simple aber interessante Idee. Ich hab es gleich mal ausprobiert. So schaut es dann zum Beispiel aus wenn ein Fehler gefunden wird:

Für die Nutzung fallen 2 US Dollar im Monat an. Nach der Zahlung erfährt man, dass die Update Site http://www.threeriversinstitute.org/junitmax/ ist und man kann das Plugin damit installieren – weitere Überprüfungen gibt es nicht. Kent Beck sieht es auch eher locker: “If you stop paying, please stop using it.”
Mein erster Test hat ganz gut funktioniert, auch wenn man merkt dass es noch eine frühe Version ist. Aufgefallen ist mir, dass man JUnit Max nicht für einzelne Projekte aktivieren oder deaktivieren kann. Auch bei fehlgeschlagenen Tests fehlen wichtige Informationen wie der Call-Stack. Die CPU Last ist natürlich auch nicht unerheblich wenn viele Tests vorhanden sind. Da werden sich in Zukunft sicher noch weitere Optimierungen finden.
2 Kommentare »
JBoss hat diese Woche eine neue Version seiner AJAX JSF Komponenten RichFaces vorgestellt. Neu bei Richfaces 3.3 sind vorallem eine Rich Text Editor Komponente (basierend auf tinyMCE) und AJAX Queues, die für eine sequentielle Abarbeitung von AJAX Requests sorgen. Weitere Details zu RichFaces 3.3 gibt es z.B. auf javathreads.de oder im JBoss Community Wiki. Zum Download geht’s hier.
Interessant fand ich in diesem Kontext noch die Ankündigung im Dezember 2008, dass Red Hat neben JSF/RichFaces auch GWT (Google Web Toolkit) als zweites Java AJAX Framework unterstützen möchte. Somit wird GWT Kernbestandteil der JBoss Middleware und Red Hat wird in Zukunft im Rahmen der JBoss Enterprise Application Platform auch Support für GWT anbieten. Nicht zu vergessen ist auch, dass JBoss Seam schon eine gewisse GWT Unterstützung anbietet. Laut Rich Sharple wird JBoss auch weiterhin JSF/RichFaces wie gehabt vorantreiben. Man fragt sich aber schon ob JBoss mit JSF/Exadel/RichFaces so richtig glücklich ist.
Auch bei Sun gab es im Dezember auch wesentliche Änderungen: ICEfaces soll Woodstock als JSF AJAX Komponenten in Suns’s RIA Stack ersetzen. Es kristallisieren sich also immer deutlicher die wichtigsten AJAX Frameworks heraus, im Java Land…
Keine Kommentare »
Auf einmal konnte ich keine Eclipse Plugins mehr installieren oder updaten. Bei einem Installationsversuch kamen immer Repository Fehler (“No repository found containing: [...]“). Wie sich herausstellte handelt es sich um einen Equinox Bug der auch noch die aktuelle Eclipse Version 3.4.1 betrifft.
Zum Glück gibt es einen Workaround zur Reparatur: Den Rest des Eintrages lesen »
16 Kommentare »
Geschrieben von: Markus Junginger in Java, tags: Eclipse, Eclipse 3.4, Erfahrungsbericht, Installation, plugins, polarion, Revision Graph, subclipse, Subversion, Subversive, SVN
Eclipse User haben den Luxus zwischen zwei “SVN Team Provider” Plugins wählen zu können beziehungsweise zu müssen: Subclipse und Subversive. Mit Subclipse habe ich schon längere Zeit gute Erfahrungen gemacht. Aber nachdem Subversive mit Eclipse 3.4 das offizielle Subversion Plugin der Eclipse Foundation geworden ist, habe ich mir es die letzten Monate näher angeschaut. Es war sogar möglich beide Versionen parallel in Eclipse zu installieren. Das fand ich hilfreich, weil Subversive die zuvor mit Subclipse gemanagten Projekte nicht übernehmen konnte. So musste ich die vielen Projekte nicht nochmal mit Subversive auschecken, was sonst der übliche Weg ist. Inzwischen habe ich komplett auf Subversive umgestellt und Subclipse deinstalliert. Den Rest des Eintrages lesen »
4 Kommentare »
Parallel4 ist eine neue kleine Library, die Parallelisierung für Java und weitere Sprachen auf der JVM vereinfachen soll. Ein zentraler Bestandteil sind parallele for-Schleifen, die automatisch so viele Threads verwenden wie CPU Kerne verfügbar sind. Dazu gleich etwas Code aus dem mitgelieferten Mandelbrot-Beispiel (zum Starten einfach die Jar Datei ausführen).
Konventionell, single-threaded:
for (int y = 0; y < height; y++) {
calcLine(y);
}
Dasselbe in der multi-threaded Variante mit Parallel4, die alle vorhandenen CPUs nutzt:
new ParallelForInt(height).loop(new IterationInt() {
public void iteration(int y) {
calcLine(y);
}
});
Auf einer Dual-/Quad-Core CPU verdoppelt/vervierfacht sich damit die Geschwindigkeit. Parallel4 versucht dabei den Mehraufwand minimal zu halten und gewohnte Ansätze beizubehalten. Den Rest des Eintrages lesen »
2 Kommentare »
Bei dem am 8. Juli veröffentlichen JDK 6 Update 7 ist erstmals VisualVM dabei. VisualVM ist ein Profiler für Java Applikationen mit einer intuitiven grafischen Oberfläche. Mit dem Tool lassen sich Performance Bottlenecks und Speicherleichen einfach auffinden. Der erste Eindruck überzeugte spontan: einfach jvisualvm aus dem JDK bin Verzeichnis auswählen, die einmalige Performance Kalibrierung durchführen und schon kann man einen Java Prozess auswählen, den man untersuchen möchte. Wie das aussieht zeigen die folgenden Screenshots. Davor aber noch etwas Hintergrundinfo: VisualVM ist eine Netbeans RCP Anwendung, was es unter anderem ermöglicht, VisualVM mit Plugins zu erweitern. Durch die Aufnahme von VisualVM ist das JDK allerdings auch größer geworden: Der Download ist von 71 auf 77 MB gewachsen und nach der Installation braucht das neue Verzeichnis lib/visualvm gut 21 MB an zusätzlichen Festplattenplatz. Aber das stört heutzutage wohl niemanden mehr.
Und jetzt zu den Screenshots. Zuerst eine Übersichtsdarstellung:

Der Profiler zeigt hier an welche Methoden am meisten CPU benötigen, und zwar immer live:
Den Rest des Eintrages lesen »
2 Kommentare »
Geschrieben von: Markus Junginger in Java, tags: Ant, Antivirus, Deployment, EAR, Eclipse, Glassfish, IDE, JEE, Kaspersky, Performance, WTP
Mein Artikel “Improving Glassfish Deployment Performance in Eclipse” aus der englischsprachigen Sektion von jars.de hat es in das Glassfish Aquarium “geschafft”. Zusammengefasst ließ sich die Deployment-Geschwindigkeit mit zwei einfachen Mitteln um 40% erhöhen: Zum einen hilft ein simpler Ant-Task für Verzeichnis-basiertes (exploded) Deployment und zum Anderen den Virenscanner feintunen. Das Directory-Deployment hilft auch bei der JSP/JSF Entwicklung, da Änderungen an JSPs ohne Redeployment sofort sichtbar werden. Die Details sind im englischsprachigen Artikel nachzulesen.
3 Kommentare »
Geschrieben von: Markus Junginger in Java, tags: Cluster, Concurrent, CPU, Garbage Collection, Grid, JMS, JVM, MOM, Multithreading, Parallelisierung, Programmiersprachen, Threads
Vor ein paar Jahren sich die Entwicklung von CPUs grundlegend verändert: Statt immer höhere Taktraten zu erzielen setzen Prozessorhersteller auf mehrere Prozessorkerne, die parallel arbeiten. Das volle Leistungspotential können damit auch nur noch Programme ausschöpfen, die parallel mit mehreren Prozessen oder Threads arbeiten. Klassische Programmiersprachen wie C, C++ und Java verlangen vom Programmierer, dass sie selbst für die Parallelisierung Sorge tragen (explizite Parallelisierung). Einfacher zu handhaben sind Programmiersprachen die eine implizite Parallelisierung unterstützen, also keine weiteres Zutun seitens des Entwicklers bedürfen. Insbesondere funktionale Sprachen wie Haskell und Erlang sind besonders dafür geeignet, da sich die Programme hier naturgemäß in parallel abarbeitbar Einheiten unterteilen lassen.
Den Rest des Eintrages lesen »
3 Kommentare »
Geschrieben von: Markus Junginger in Java, tags: Bug, Eclipse, Glassfish, How-to, JBoss, JST, Netbeans 6, server, WST, WTP
Einen derartigen Show-Stopper Bug habe ich bei Eclipse selten erlebt: Mit der aktuellen WTP 2.0.2 ließen sich Webapplikationen wegen einer NullPointerException generell nicht mehr deployen. Zudem gab es auch Probleme beim Starten von Glassfish. Wie sich herausstellte ein seit Februar 2008 bekannter Bug, der es jedoch ganz knapp nicht in die Version WTP 2.0.2 geschafft hatte. WTP 2.0.2 ist auch noch im Juni 2008 aktuell und wird z.B. bei einer Aktualisierung installiert. Ob noch eine Version 2.0.3 kommt ist fraglich; im Bugreport ist Version 3.0 anvisiert. Der Bug scheint relativ Server-übergreifend zu sein; jedenfalls ist im Bugreport auch die Rede von Glassfish, JBoss 4.2, Jetty 6 und OC4J.
Es gibt seit längerem auch schon einen Fix den man sich allerdings manuell als Patches herunterladen muss. Den Rest des Eintrages lesen »
Keine Kommentare »
Derzeit beschäftige ich mich neben Java auch unter anderem mit C# und .NET. Die Sprache Java wird ja eher konservativ und evolutionär weiterentwickelt (es gibt ja eine große Zahl an Entwicklern und Applikationen). Anders bei C# das seit seiner Entstehung als Java Clone schon mal größere Sprünge gemacht hat. Eine solcher ist definitiv LINQ, eine Spracherweiterung für Abfragen (Language-Integrated Query). Damit lassen SQL ähnliche Abfragen direkt in C# (ab Version 3.0) auszudrücken. OK, netter Syntax-Zucker für relationale Datenbanken, aber das wirklich spannende an LINQ ist, dass beispielsweise auch XML und Objektgraphen auf diese Weise angesprochen werden können. Tatsächlich hat man von der Implementierung abstrahiert, so dass man für praktisch alle Datenquellen einen LINQ Aufsatz bauen könnte (LDAP, SAP, Dateisystem, Webservices, etc.).
Den Rest des Eintrages lesen »
7 Kommentare »
|