Measuring code quality with Sonar

February 26th, 2010 by Allard Buijze
(http://blog.jteam.nl/2010/02/26/measuring-code-quality-with-sonar/)

sonar-blackonwhite At JTeam, we continuously strive for good quality code. The reason is very simple: bad quality code slows down the development process. The small investment pays out in even the simplest of projects.

Measuring code quality is not a matter of a single metric. Instead, software quality has many aspects, some of which can be captured in metrics. Those metrics can be nicely assembled within a single application, which gives a nice overview of the state of an application: Sonar.

Read the rest of this entry »

Wicket root mounts

February 24th, 2010 by Erik van Oosten
(http://blog.jteam.nl/2010/02/24/wicket-root-mounts/)

One of the very easy things with Wicket is mounting pages on the first words of a URL; listening to URLs like http://shop.nl/article/4513 is programmed before you can say xiphophorus clemenciae.
One of the very hard things with Wicket is mounting pages where the first words of the URL are a parameter; listening to a URL like http://twitter.com/erik_van_oosten is just completely impossible.

Completely impossible? Wicket 1.5 will make this easy but is very instable for now. This article shows you how to mount pages on the root URL with Wicket 1.4. We will need to apply some hacks so hang on!

If you are only interested in using the technique you can skip to the last section ‘Understanding the demo’.

Read the rest of this entry »

Greg Young to attend on DDDnl meetup about CQRS on March 1st.

February 24th, 2010 by Allard Buijze
(http://blog.jteam.nl/2010/02/24/greg-young-to-attend-on-dddnl-meetup-about-cqrs-on-march-1st/)

On March 1st, Erik Rozendaal will give a presentation about Command Query Responsibility Seggregation (CQRS). Greg Young, one of the masterminds behind CQRS, has confirmed that he will be present during this meetup too. Seems like a good recipe for an interesting evening.

Attendance is free, but registration is required. Read on for details.

Read the rest of this entry »

Axon Framework – the CQRS framework for Java – version 0.4 released

February 21st, 2010 by Allard Buijze
(http://blog.jteam.nl/2010/02/21/axon-framework-the-cqrs-framework-for-java-version-0-4-released/)

logoLast week, I published the 0.4 release of the Axon Framework. Axon helps developers build high performance, scalable and extensible applications using the CQRS pattern. The 0.4 release is a major step towards 1.0, and includes transactional event handling, high-performance caching repositories and easy configuration of event sourcing support. Furthermore, we have also built a demo application that uses Flex to get real-time updates pushed from the server.

Read on to find out more.

Read the rest of this entry »

Free Java hosting with the Google App Engine

February 4th, 2010 by Tom van Zummeren
(http://blog.jteam.nl/2010/02/04/free-java-hosting-with-the-google-app-engine/)

Lately I have been looking into and playing around with the Google App Engine. In this post I want to give a little introduction to the Google App Engine, why it can be interesting and how to work with it.
Read the rest of this entry »

All good things come to an end…

January 27th, 2010 by Leonard Wolters
(http://blog.jteam.nl/2010/01/27/all-good-things-come-to-an-end/)

Yes it is true. After almost 6 years I’ve decided to leave JTeam.

GoodbyeParty

Read the rest of this entry »

CQRS – Designing domain events

January 27th, 2010 by Allard Buijze
(http://blog.jteam.nl/2010/01/27/cqrs-designing-domain-events/)

logo Command-Query Responsibility Segregation (CQRS) is slowly but steadily gaining ground as an architecture that helps developers to develop scalable, extensible and maintainable applications. Events play a major role in this architecture, and the way you design these events greatly influence the extensibility of your application.

In this post, I describe some CQRS event basics and design considerations that help keep your application extensible.

Read the rest of this entry »

First Dutch Lucene User Group Meetup

January 20th, 2010 by Uri Boness
(http://blog.jteam.nl/2010/01/20/first-dutch-lucene-user-group-meetup/)

August last year, we announced the new Dutch Lucene User Group with the intention to provide a platform for knowledge sharing and discussions for the Lucene community in The Netherlands. Obviously, beyond setting up a dedicated website for that, the main activity of this usergroup should be in the form of periodic meetups. Unfortunately it didn’t work out to execute it last year, but this year we would really like to get it going and put more efforts in it, and first step I guess is setting up a first meetup.

So I’m pleased to announce the first Dutch Lucene User Group Meetup. It will take place on 17th February (Wednesday) at the JTeam headquarters office. This first meetup will be split into two parts:

  • Introduction to the user group and the members. We’ll have a discussion about what we would all like to see coming out of this user group and what activities we would like to have.
  • The next part will be more technical. Anne Veling will share with us some of his experience of large scale Solr deployment that he’s working on.

If you wish to attend, please send us an email to: events@lucene-nl.org

Date: 17th February 2010

Time: 17:00
Location:
Frederiksplein 1
1017XK Amsterdam
The Netherlands

Logging to the syslog from a java application

January 14th, 2010 by Jettro Coenradie
(http://blog.jteam.nl/2010/01/14/logging-to-the-syslog-from-a-java-application/)

Every application needs logging, it can help you during development and when debugging those annoying things that do not work in production. One question is where to put the logging events. All linux servers use a system log to log events that take place on the operating system level. You can find logs for the kernel, deamons, user actions and a lot of other items. The nice part about system logging is that maintenance people will always know where to look and that it is possible to use one server for logging.

At the moment I am on a project that uses a fair amount of servers. We have more than 20 servers for the different environments and a lot of components to investigate when trying to find problems. Think about squid logs, apache httpd logs, tomcat logs and more. To make this doable, we have a syslog server.

An application running in Tomcat does not log to the system log by default. In our situation, we want our components to log to different files. Syslog has a special facility that makes it easy to do just that.

This blog post discusses the different parts of configuring system logging from a java application using the well known log4j.

Read the rest of this entry »

Migrating content with Spring Integration – A real life example

January 13th, 2010 by Roberto van der Linden
(http://blog.jteam.nl/2010/01/13/migrating-content-with-spring-integration-a-real-life-example/)

In one of the projects we need to migrate content from multiple websites into Hippo CMS. One of the interesting parts of this migration is that one of the websites will constantly provide us with updates of the content. Therefore it makes the migration a continuous process.

In this post I will explain how we use Spring Integration to migrate content, handle errors, measure performance and deal with the fact that content could contain references to other content that is not imported yet.

Read the rest of this entry »