In most of my projects I'm using maven as my prefered build tool. The tool is pretty mature and if you're build process doesn't change that often it ist ok. If you need a more flexible build process, ant or gradle may be the tools of your choice.
Maven ist out the box great when doing "pure" java projects. But personally I like groovy cause some things are really nice and done with much less coding and I compiles to java byte code. So even when my customer says we just want java code and could write some groovy code.
 I n praxis I'm using groovy to write some Test Cases. The multiline string feature is a great advantage if you want to test some parsing or text generating code. When including the Groovy Eclipse plugin this works in my IDE but not in out maven build process, so I need some more steps:
  1. I've got to put my groovy code in a directory src/test/groovy (Convention over configuration) or src/main/groovy
  2. I've got to add the gmaven plugin in my build process
  3. I need to provide a groovy runtime for my testcases
Here ist an example of my pom.xml:
      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>1.3</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
...
    <dependency>
      <groupId>org.codehaus.gmaven.runtime</groupId>
      <artifactId>gmaven-runtime-1.7</artifactId>
      <version>1.3</version>
      <exclusions>
        <exclusion>
          <groupId>org.sonatype.gossip</groupId>
          <artifactId>gossip</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
I started this blog as "german block about java, technology and a lot of other stuff" cause I wanted to share my experiences when writing code. I managed to make a least one post / month. That's not much but more than nothing.

After changing the technology this summer I although redefine the content now. Most of the research I do on the web I do in english, the whole Java API is available in english, framework documentation is done in english (OK today the is often also a chinese version)  so people have almost no chance to find my blog when my posting are available in german. 

Cause I just don't have the time for translation, starting today some post will be english and some german.
Enhanced by Zemanta
I just found this quite helpful article with examples for integration the jquery datatable pluin with a JEE backend.http://datatables.net/ 
For a modern web application "rich" tables are a central component when displaying enterprise business data. There are several jquery components for handling tables, but jquery datatables seems to be the most mature one.
Cause most of my data is created using ajax, I need some server side code, although creating ajax data is no rocket science the examples shown above seem to be quite helpful when checking the syntax of your response.
Man merkt mal wieder, dass es doch nur Hobby ist und ein einfach die Zeit fehlt sich um alles zu kümmern.
In den letzten Tagen gab es Probleme mit der Kommentar und der Suchfunktion. Die sollte jetzt hoffentlich wieder funktionieren.

Ich habe auch einige nette inhalte suche aber gerade noch eine Funktion wie ich Quellcode sauber formatieren kann, dann gibt es auch wieder mehr zum Thema programieren.

Neue Technik live

| Keine Kommentare | Keine TrackBacks
Ich hatte es ja schon angekündigt, heute war es dann endlich soweit. Das neue Blog ist online! In den letzten Wochen hatte ich meinen (für meinen Geschmack schlicht zu teuren) Webspace umgebaut und auf einen neuen Server gelegt, wo ich auch schon mal am Überarbeiten war, habe ich natürlich ;-) auch gleich die Technik umgestellt.
Es arbeitet jetzt nicht mehr Wordpress sondern moveabletype. Für meine Begriffe war Wordpress ganz ok, aber moveabletype macht einen etwas runderen und vor allem schnelleren Eindruck (es werden statische Seiten publiziert).
Leider konnte ich beim Umzug nicht alle URLs beibehalten (mir fehlt schlichtweg die Zeit), so dass ich mich schon mal für alle toten Links entschuldigen möchte. Wenn irgendetwas gar nicht funktioniert darf aber natürlich jeder gerne Posten.
Sobald ich die ersten Erfahrungen mit dem neuen System habe, werde ich natürlich auch darüber schreiben.

Neue Technik

| Keine Kommentare | Keine TrackBacks
Das ist der erste Post von der neuen Plattform, nachdem ich eine ganze weile mit Wordpress gearbeitet habe, habe ich das Blog jetzt auf einen neuen Rechner verlegt und bei der Gelegenheit auch die Technik geändert. Anstelle von Worpress arbeite ich jetzt mit moveable Type. Dabei ist mir persönlich eigentlich relativ irrelevant, dass die Plattform nicht mit PHP sondern mit PERL arbeitet, sondern dass es einen statischen Publizierungsprozess gibt. Das sollte sowohl schneller als auch stabiler funktionieren als die dynamische Seitenerzeugung mit PHP.
Enhanced by Zemanta
Wie leider allzuoft in der EDV kommt auch hier das neue nicht im Mai sondern erst im Juni. Habe seit einigen Wochen einen neuen Rechner und bin dabei auch von Windows zum Mac gewechselt. In Kürze gibt es dann auch hier wieder mehr updates, dann wohl auch einiges zum Thema Apple.
Ich war in den letzten Tagen gezwungen Eclipse mal wieder neu zu installieren und musste daher auch mal wieder meine Plugins durchforsten. Nach dem ich die üblichen Verdächtigen für Subversion, Maven und Tomcat recht schnell instlliert hatte, fiel mir aber doch auf das ein paar kleine aber für mich persönlich doch sehr hilfreiche Plugins fehlten:
  • Zum einem habe ich MoreUnit nachinstalliert. Ein Plugin das es ermöglicht zwischen der zu testenden und der getesteten Klasse direkt hin und her zu springen. Da bei mir Testklassen nach der Maven Konvention immer im selben Package aber nicht im selben Verzeichnis liegen (Produktiv unter src/main/java, Testklassen unter src/test/java) ist es in Eclipse manchmal ziemlich umständlich hin und her zu springen. Das erleichert dieses Plugin ungemein.
  • Zum zweiten habe ich das Grep Console Plugin installiert. Normalerweise verwenden ich slf4j um Logausgaben zu schreiben, bei der Entwicklung in der Regel auf die Console (Produktiv natürlich in ne Datei).  Wenn das Logging recht ausführlich ist, kann man die eine oder andere wichtige Ausgabe schnell mal übersehen. Mit dem Plugin kann man die Ausgaben anhand von regulären Ausdrücken farbig hinterlegen. So werden bei mir ERROR Meldungen sofort rot hinterlegt, und ausgaben die sich auf meinen aktuelle gerade in Entwicklung befindlichen Code beziehen fett gedruckt. Das spart mir die sonst gerne von Entwicklern verwenden ******** oder ähnlichen unschönen Ausgaben (die dann manchmal sogar commited werden).
Die Garbage Collection der JVM ist eine praktische Sache und ich glaube kaum ein Java Programmierer möchte da drauf verzichten. Allerdings hat die Bequemlichkeit seinen Preis, Memory Leaks und intensive Garbage Collection sind fast immer ein Nadelöhr wenn es um Performance geht. Daher gibt es im Netz eine ganze Menge Artikel wie Gargabe Collection funktioniert (und wie man daher seine Objekte verwalten sollte), vieles davon ist allgemeine Best Practice, aber manche Sachen unterscheiden sich auch von Herstelle zu Hersteller. Leider beziehen sich fast alle Artikel (die nicht gerade vom Hersteller der jeweiligen JVM stammen)  immer nur auf Sun (bzw. jetzt Oracle) Virtual Maschine und vernachlässigen das es mit der BEA und der IBM JVM noch zwei weitere verbreitete Virtual Maschines gibt, die aber Garbage Collection doch etwas anders lösen. Dynatrace hat diese Tage einen schönen Artikel veröffentlich, der die Gargabe Collection auf unterschiedlichen Systemen einmal bescheibt. Persönlich halte ich es übrigens für sinnvoll einmal zu verstehen wie Garbage Collection funktionier, halte aber wenig davon Java Code für eine spezielle JVM zu optimieren. Klar gibt es Best Practice (wenige Objekte, kurzer Lebenszyklus, keine zyklischen Abhängigkeiten...) aber Java Code sollte eigentlich auf jeder Plattform und damit auch auf jeder JVM laufen, wenn man zuviel an der Garbage Collection schrauben muss, hat man in der Regel schon bei der Architektur etwas falsch gemacht.

Aktuelle Kommentare

  • Markus: Interessante Präsentation, auch wenn ich nicht komplett allen Punkten zustimme, weiterlesen
  • joe: Grundsätzlich gebe ich dir natürlich völlig recht, bei Startzeiten kann weiterlesen
  • Blubberbart: Die Nummer mit der Startzeit hinkt doch meistens. Vor allem weiterlesen
  • joe: Natürlich kann auch Hades keine Interface instanziieren. Die Meta Daten weiterlesen
  • info-bachelor.com: Und wie hat das nun im Konkreten funktioniert? Dies würde weiterlesen
  • Oliver: Hi Jörg, ich hatte mich schon immer gefragt ob ich weiterlesen
  • Simon: Hallo zusammen, reguläre Ausdrücke zu formulieren ist nicht immer einfach. weiterlesen
  • micha: zum Thema "Kein automatisches File Update" da gibt es schon weiterlesen
  • Oliver Rossbach: Hi Jörg, ein schönes Deja-Vu hatte ich beim Lesen Deines weiterlesen
  • Obermaier Dominik: Hallo, bei den Kritikpunkten gebe ich dir ungeingeschränkt recht. Als weiterlesen

Aktuelle Assets

  • Einstellungen für Kantenglättung
  • Menü Eigenschaften
  • extract_cert
  • Suchergebnis mit Plugin
  • context_menu
  • Hudson Screenshot
  • Screenshot Hudson
  • Hudson Screenshot
  • IE Tester
  • screenshot