Thursday, 15. January 2009
JMX over SNMP
Theoretisch kann man die Java Management Extensions (JMX) auch über SNMP abfragen. Dazu wird der SNMP-Agent über die Properties
-Dcom.sun.management.snmp.port=6070
-Dcom.sun.management.snmp.acl=false
aktiviert (zu Testzwecken hier nicht abgesichert, s.a. JVM-Monitoring-Folien von Tobias Frech).

Aber wie komme ich an die INFO ran? Unter Linux ruft man dazu das Kommando snmpwalk auf:
% snmpwalk -v1 -c public localhost:6070 .
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.1.1.0 = Gauge32: 1914
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.1.4.0 = INTEGER: 1
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.1.0 = Gauge32: 0
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.2.0 = INTEGER: 1
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.3.0 = INTEGER: 2
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.2.1 = STRING: "CodeCacheMana
ger"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.2.2 = STRING: "Copy"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.2.3 = STRING: "MarkSweepComp
act"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.3.1 = INTEGER: 2
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.3.2 = INTEGER: 2
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.100.1.3.3 = INTEGER: 2
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.110.1.2.1 = STRING: "Code Cache"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.2.110.1.2.2 = STRING: "Eden Space"
...
Insgesamt scheint mir das aber ein wenig praktikabler Weg zu sein, da man über den Aufbau der SUN-SNMP-MIB nichts zu JMX findet.

Wie ich soeben von Tobias Frech erfahren habe, kann man auch nur die Sun-MBeans über SNMP abfragen, d.h. eigene MBeans erscheinen nicht in der Auflistung.

... link (0 Kommentare)   ... comment


Sunday, 11. January 2009
Aufruf zu den Test-Tagen 2009
Letztes Jahr hat die JUGS die Test-Tage 2009 angekündigt. Als Einstieg zu den Test-Tagen gibt es auch eine Beispiel-Anwendung, die als JugsBaseKomplett.zip heruntergeladen werden kann. Falls Sie einen Beitrag einreichen wollen, können Sie diese Anwendung als Basis verwenden, Sie können aber auch auf Ihre gewohnten Beispiele zurückgreifen. Der Rest diesen Beitrags wird jetzt darum gehen, wie man diese Anwendung in Eclipse einbindet.

Voraussetzung für die Einbindung ist Eclipse 3.3 oder 3.4 mit den Web-Tools (WTP), Java 5 und Tomcat 5.5 oder Tomcat 6 (damit habe ich es unter MacOS-X getestet). Nach dem Auspacken der Zip-Datei finden Sie ein Verzeichnis JugsBase vor, das eine startbare JAR- und WAR-Datei enthält (die wir aber ignorieren). Wir importieren das Verzeichnis (File > Import...) über "Existing Projects into Workspace" als JavaEE-Projekt.

Ein Großteil der Fehler, die nach dem Import in der Problems-View zu sehen sind, sind HTML-Fehler, die wir vorerst über "Project > Properties > Validation > HTML Syntax" und der Einstellung "Missing start tag: Ignore" (dazu evtl. noch "Enable project specific settings" selektieren) ausblenden. Wenn Sie mit Java 5 arbeiten, sollten in den Project-Properties die "Project Facets" auswählen - dort ist Java 6 eingestellt, es reicht aber auch Java 5. Danach sollten keine Fehler mehr in der Problems-View auftauchen.

Öffnen Sie nun die Server-View und fügen dort das JugsBase-Projekt als JEE-Anwendung hinzu (Tomcat-Server auswählen, "Add and Remove Projects..."). Wenn Sie dann den Server starten, sollte ein aktueller Finanzrechner unter http://localhost:8080/JugsBase/ erscheinen.

... link (2 Kommentare)   ... comment


Monday, 5. January 2009
Eclipse-Update repaired (MacOS-X)
Today I started from Eclipse an software update on my Mac. After the update I was asked to restart Eclipse. But after the restart only an error box with "eclipse executable launcher was unable to locate its companion shared library".

The solution for this problem I found on www.eclipsezone.com/eclipse/forums/m92238097.html:
  • edit the file Eclipse.app/Contents/MacOS/eclipse.ini
  • correct the entry for --launcher.library
But where is the Eclipse.app directory? When you go the Eclipse installation directory with the Finder you see Eclipse.app as program icon, but not as directory. So I started a terminal (oh yes, I'm not a born Mac user) and started the following commands:
cd /Applications/opt/eclipse   # my install dir for Eclipse
cd Eclipse.app/Contents/MacOS
vi eclipse.ini

You can use another editor, of course. But I don't know which other editors are available from the commandline.

After this "repair" I was able to start Eclipse again.

... link (0 Kommentare)   ... comment


Tuesday, 23. December 2008
Connection Failed: Retry?
Eigentlich sollte die jconsole unter Java 6 ohne weitere Einstellungen sich mit einem Java-Prozess verbinden können. Aber dies scheint nicht immer der Fall zu sein (zumindest bei mir unter Ubuntu 8.10) - es kommt immer die Fehlermeldung "Connection Failed: Retry?", wenn ich z.B. im JDK-Demo-Verzeichnis
java -jar Notepad.jar

starte und mich danach mit der jconsole dagegen verbinde. Mit den Optionen -Dcom.sun.management.jmxremote.local.only=false und -Dcom.sun.management.jmxremote hat es aber dann doch noch geklappt:
java -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote -jar Notepad.jar

Danach war die jconsole nicht mehr bockig, sondern lies sich mit der gestarteten Notepad-Anwendung verbinden.

... link (0 Kommentare)   ... comment


Sunday, 14. December 2008
Hello World with PatternTesting 0.8.0
Logo for PatternTestingLast week PatternTesting 0.8.0 was delivered. The main difference to PatternTesting 0.6.x is a split into several subprojects.

For the Hello-World-Example described in October you have to add now two jar files:
  • patterntesting-check-0.8.0.jar
  • patterntesting-rt-0.8.0.jar (for @SystemOutNeeded)
You can download the files from sourceforge. If you use Maven add the following lines into your pom.xml:
<dependency>
  <groupId>net.sf.patterntesting</groupId>
  <artifactId>patterntesting-check</artifactId>
  <version>0.8.0</version>
</dependency>

Happy Patterntesting...

... link (0 Kommentare)   ... comment


Tuesday, 11. November 2008
C++ mit Eclipse programmieren
Auch wenn Eclipse eigentlich als Java-IDE auf die Welt kam, ist es inzwischen Basis für viele andere IDEs und Anwendungen. Als dann der Franzis-Verlag mit Anfrage nach einem C++-Buch mit Eclipse auf mich zukam, war ich diesem Vorschlag nicht abgeneigt. Und jetzt ist es endlich soweit - das Buch C++ mit Eclipse programmieren ist draußen.

Hauptsächlich hatte ich die Beispiele unter Linux und MacOS-X entwickelt und getestet. Am Ende habe ich die Beispiele natürlich noch unter Windows getestet, da dies immer noch die vorherrschende Plattform ist. Da ich bewußt auf Windows- und Grafik-Programmierung verzichtet habe (hier unterscheiden sich die System zu sehr), gab es zum Glück keine größere Probleme.

Größere Probleme bereitete mit hingegen die beiliegenden CD, da es sich hierbei um ein bootbare CD mit einem Knoppix-Derivat handelt, die alles für den schnellen Einstieg mitbringt. Haupthindernis waren die lange Turnaround-Zeiten: Ändern - CD brennen - booten - testen - wieder ändern usw... Aber ich denke, der Aufwand hat sich gelohnt.

... link (0 Kommentare)   ... comment


Monday, 3. November 2008
Umstieg von KDE 3 auf Xfce 4.4
Eigentlich bin ich mit KDE zufrieden - wenn es nicht immer solange dauern würde, bis KDE nach der Anmeldung einsatzbereit ist. So entschloss ich mich, mit Erscheinen von Ubuntu 8.10 auf Xubuntu und Xfce als schlanken Window-Manager umzusteigen. Und ich muss sagen, bis jetzt habe ich den Umstieg noch nicht bereut.

Xfce startet im Gegensatz zu KDE wesentlich flotter - kurz nach der Anmeldung ist der Desktop auch schon einsatzbereit. Und ich muss auf nichts verzichten, was ich von KDE gewohnt bin. Xfce hat eine (oder mehrere) Startleisten, die man nach Bedarf anpassen und mit passenden Applets bestücken kann. Ich habe verschiedene virtuelle Desktops, die ich mit Ctrl+F1...Fn wechseln kann und ich kann meine liebgewonnenen KDE-Anwendungen wie konqueror oder digiKam starten.

Einziger Wermutstropfen besteht derzeit in der Start-Leiste - sie will immer im Vordergrund sein, d.h. ich kann keine Fenster drüberschieben (wie in KDE 3), was mich bei meinem Notebook mit 1024x768 Pixeln stört. Allerdings kann ich Anwendungen mit F11 oder Alt+F11 auf Vollbild vergrößern, sodass ich diese Einschränkung verschmerzen kann. Weitere Tastenkombinationen wie z.B. Alt+F1 (Hilfe) kann man der Dokumentation entlocken.

... link (0 Kommentare)   ... comment


Monday, 13. October 2008
Hello World with PatternTesting
Logo for PatternTestingIf you want to use Patterntesting with Eclipse you must install the AspectJ plugin AJDT. If you haven't done it add the site http://download.eclipse.org/tools/ajdt/34/update for Eclipse 3.4 and install it.

Now we are ready to create a simple Java project with a hello.World class inside:
package hello;
public class World {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Before we can add the PatternTesting library we must convert the project into a AspectJ project. Select "AspectJ Tools > Convert to AspectJ Project" from the project's context menu (right mouse key).

Next we will integrate the PatternTesting library. Download it from the download page and call the project properties. Select the entry "AspectJ Build" and then the tab "Aspect Path". Add the patterntesting.0.6.0.jar you have downloaded and press ok.


You should see now the warning No logging should be done using System.out! in the problems view. I don't know any program which needs to use System.out for printing so this warning is normally ok. One exception from this rule is this Hello-World program so you can suppress it using the anntoation @SystemOutNeeded:
package hello;
import patterntesting.java.annotation.*;
public class World {
    @SystemOutNeeded
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

happy patterntesting...

... link (0 Kommentare)   ... comment


Monday, 6. October 2008
PatternTesting 0.6.0 released
Logo for PatternTestingThis weekend a new version of PatternTesting was released. There is now some aspects for thread support available. Other aspects are now made concrete and can be (de)activated by annotations (e.g. @NullArgsAllowed or @SystemOutNeeded). For the other changes see Changes Report on PatternTesting homepage.

What is still missing are some samples how to use PatternTesting. This will be a task for the next weeks.

Stay tuned...

... link (0 Kommentare)   ... comment


Saturday, 27. September 2008
Trouble with Sourceforge
Logo for PatternTestingIn the last week I improved Patterntesting and coupled some aspects with annotation for easier handling. But at the moment the SSH service of sourceforge is closed so that 'mvn site-deploy' does not work (see sourceforge tracker).

Also the patterntesting-devel mailing list is not alive at the moment. Sourceforge has moved to a new data center which was announced some days ago. I'm not the only one with this problem so I will wait...

Stay tuned...

... link (0 Kommentare)   ... comment


Sunday, 14. September 2008
Java-Konferenz in Berlin
Vom 13. bis 14. September tagte die berlin.jar an der FHTW. Schon die Taxifahrt vom Bahnhof war beeindruckend - Berlin ist verdammt groß. Die Konferenz selbst war zwar mit 200 Teilnehmer etwas übersichtlicher, aber doch beachtlich, da es die erste Java-Konferenz in Berlin war.

Auch wenn es die erste Konferenz war und mit bescheidenen finanziellen Mitteln organisiert wurde, machte es eine recht professionellen Eindruck, auch wenn es hin und wieder kleinere Pannen gab. Aber diese machen gerade den Reiz einer solchen Konferenz aus.

Die Konferenz beschränkte sich zwar vorwiegend auf das 2. Stockwerk, dennoch hatte ich einige Male Schwierigkeiten, mich auf dem Campus der FHTW zurechtzufinden. So war ich froh, dass ich aus den Katakomben der Fachhochschule, in die mich die Suche nach der Essensausgabe geführt hat, wieder heil herausgefunden habe. Ich habe mich noch einige Male in dem Gebäude verlaufen und war jedesmal wieder froh, einen der zahlreichen Hinweis-Pfeile zu entdecken, ohne die ich in dem Gebäudekomplex der FHTW verloren gewesen wäre.

Es standen einige interessante Vorträge zur Auswahl, zu denen ich leider nicht alle gehen konnte. Beim abendlichen Grillen hatte man dann Zeit, sich mit dem ein oder anderen auszutauschen, was auch intensiv genutzt wurde. Dankenswerterweise fingen die Vorträge am Sonntag erst um 10 Uhr an.

Meine Folien zur Konferenz:
  • Java gestern, heute, morgen helloberlinjar (pdf, 1,316 KB) (Folien zur Begrüßung im Audimax der FHTW)
  • Aspektorientierung - gibt es ein Leben nach Java und OO? aspektorientierung (pdf, 3,059 KB)
Fazit: eine nette Konferenz, die sich gelohnt hat.

... link (0 Kommentare)   ... comment


Sunday, 15. June 2008
Linux-Camp 2008
Vom 11. bis 12. Juni hatte ich für die JUGS und mit tatkräftiger Unterstützung durch agentes ein Linux-Camp organisiert. Überrascht und gefreut hat es mich, dass tatsächlich alle 20 angemeldeten Teilnehmer erschienen sind. Na ja, eigentlich sind 21 Teilnehmer erschienen, weil ich morgens noch unsere BA-Studentin zum Camp überreden konnte. Dies ergibt einen Schwund von -5%!

Der spannenste und schwierigste Teil aus meiner Sicht war die Installation, auch wenn sie im Vergleich zu den Anfangszeiten von Linux sehr einfach geworden ist. Als Basis wurde Ubuntu 8.04 (Hardy Heron) verwendet. Bei Fragen dazu ist ubuntuusers.de eine gute Anlaufstelle.

Der zweite Tag endete dann mit Inbetriebnahme einer TV-Karte (DVB-T Hauppauge Nova-T USB2) unter Linux. Die größte Herausforderung war dabei, den passende Video-Player zu finden. Kaffeine mit xine als Backend und dem xshm-Treiber (bei "auto"-Einstellung blieb der Beamer schwarz) erwies sich dabei als komfortabelste Lösung. Anschließend konnte man beim "Open Viewing" beim EM-Spiel Deutschland - Kroatien mitfiebern. Leider entsprach das End-Ergebnis (1:2) nicht den Erwartungen, was aber sicherlich nicht an Linux gelegen hat.

Linkliste: s. JUGS-Forum

... link (0 Kommentare)   ... comment


Thursday, 22. May 2008
Update von Gutsy auf Hardy
Nachdem ich vor einem halben Jahr von SuSE 10.2 auf Ubuntu umgestiegen bin, stand jetzt mit Ubuntu 8.04 ("Hardy Heron") das erste Update an. Leider war es nicht ganz problemlos - das eigentliche Update hat zwar geklappt, aber nach dem Booten waren WLAN und Audio still. Schuld daran waren wohl die Crypto-Module padlock-aes und geode_aes, die ich daraufhin in die Blacklist /etc/modprobe.d/blacklist verbannt habe:

# these aes modules break the airo driver
blacklist padlock_aes
blacklist geode_aes

Den entscheidenden Hinweis dazu habe ich aus der Bug-Beschreibung zu Bug #189398 erhalten. Seitdem tut sowohl WLAN als auch Sound wieder.

... link (0 Kommentare)   ... comment


Tuesday, 6. May 2008
Grady Booch in Second Life
Als Highlight auf dem 10. Workshop Software-Reengineering im Physikzentrum Bad Honnef fand heute der Vortrag "Software Archeology and the Handbook of Software Architecture" von Graady Booch im Second Life statt. Auch wenn der Vortrag recht interessant war, lies die technische Qualität der Sprach-Übertragung sehr zu wünschen übrig. Es war meine erste Begegnung mit Second Life und ich hatte mir mehr davon versprochen. Zumindestens für Vorträge scheint es mir nicht das richtige Medium zu sein...

... link (0 Kommentare)   ... comment