Finalist

Finalist Developers Blog

Unit testen met mock objecten in een Dependency Injection container

20 January 2010 12:32 Rob Schellhorn Algemeen, Java

Het grote verkoop argument om te kiezen voor een Depency Injection (DI) container is de losse koppeling tussen componenten. Het systeem bestaat uit kleine componenten die makkelijk ‘aan elkaar geknoopt’ kunnen worden. Dit leidt onder andere tot betere, (unit) testbare code. In een unit test wil je immers een specifieke unit testen, waarbij onderliggende componenten zoveel mogelijk constant gehouden worden. Het constante gedrag van zo’n onderliggend object wordt gerealiseerd door een mock implementatie te injecteren: een implementatie specifiek voor de test. In deze blog post wil ik aan de hand van een voorbeeld use case laten zien hoe je deze techniek effectief kan inzetten.
Lees verder

  |  Reageer

Datum en tijd in Java

6 January 2010 22:26 Martin Sturm Java

Sinds het begin van de ontwikkelingen voor JDK 7 is er al redelijk wat discussie gaande over de API’s in de standaard Java libraries die betrekking hebben tot het werken met datums en tijd. In de huidige Java versie (1.6) zijn er grofweg drie (groepen) met classes die hiervoor gebruikt kunnen worden: Date en Calendar, de classes voor het opmaken van een datum voor weergave en de classes in de java.sql package. Onder deze laatste groep valt java.sql.Date, java.sql.Time en java.sql.Timestamp. De meeste softwareontwikkelaars zijn het er wel over eens dat deze API’s verre van perfect zijn. Lees verder

  |  3 reacties

Geen wachtwoorden, alstublieft!

14 December 2009 17:56 Nico Klasens Algemeen, Java

De afgelopen jaren heb ik te maken gehad met verschillende SSO oplossing met één van de belangrijkste redenen dat er te veel systemen zijn met een eigen wachtwoord. Na verloop van tijd worden er nieuwe systemen ingezet binnen een organisatie en heb je opeens 20 wachtwoorden te onthouden. Natuurlijk moeten die 20 wachtwoorden allemaal voldoen aan de eisen van een lastig te raden reeks tekens. Naast al die andere arbitraire feitjes zoals telefoonnummers, bankrekeningnummer, verjaardagen en adressen is dit een hele opgave. Hoe meer er geklaagd wordt over al deze wachtwoorden hoe meer er nagedacht wordt over een SSO-oplossing.
Lees verder

  |  Reageer

Content en meertaligheid

25 November 2009 12:02 Nico Klasens Java

Veel content-gedreven websites hebben genoeg aan de basisfunctionaliteit van een content repository. Content wordt gestructureerd in het hiërarchische model van folders. Content wordt daarnaast via een workflow gepubliceerd en oude versies worden gearchiveerd. Het datamodel van nodes en properties is hier heel geschikt voor (zie de eerdere post Databases versus content repositories).

Het wordt pas weer lastiger als een content gedreven website in meerdere talen beschikbaar moet zijn. Dit geeft weer een extra dimensie aan de content zodat het niet direct te vertalen is naar een hiërarchische structuur. Let op het verschil tussen internationalization (i18n) en localization (l10n). Een content repository moet ingericht worden voor i18n zodat de website l10n kan zijn.
Lees verder

  |  Reageer

Devoxx 2009: heeft Java toekomst?

23 November 2009 12:36 Martin Sturm Evenementen, Flex, Java

De nieuwste trends op het gebied van Java en de JVM, relevante ontwikkelingen voor developers in het algemeen en een hoop inspiratie zijn de belangrijkste elementen die jaarlijks terugkeren op het grootste Java-evenement van Europa. Devoxx werd dit jaar voor de achtste keer georganiseerd, en ook dit jaar had ik de kans om hier naar toe te gaan. Uiteraard was er veel te zien en te horen, en een uitgebreid verslag kan dus niet achterwege blijven.
Lees verder

  |  Reageer

Databases vs Content repositories

13 October 2009 15:37 Nico Klasens Databases, Java

De afgelopen tijd verzeil ik regelmatig in een discussie waar de data van een project het beste in bewaard kan worden. De discussie gaat tussen een relationeel systeem of een content repository. In de rest van dit verhaal zal ik een aantal redenen noemen om wel of juist niet voor een repository te kiezen.
Lees verder

  |  4 reacties

JavaScript Architectuur

28 September 2009 12:00 Auke van Leeuwen Java, Javascript

Sinds AJAX is ‘uitgevonden’ (als je dat zo mag noemen) is het leven van de webdeveloper enigszins veranderd. Nieuwe verwachtingen op het gebied van front-end development leveren ook een nieuwe set van problemen. Verwachtingen die bijvoorbeeld door applicaties als Google Calender of Google Mail geschapen worden. Zo ook voor het project waar op dit moment de laatste hand aan gelegd wordt: een soort van gebiedsselectie tool voor een distributeur van ongeadresseerd reclamedrukwerk. Deze tool leunt hevig op de Google Maps API om de selecties te maken en te tekenen als lagen over de Google Maps kaart. Zie hiervoor ook eerdere blogposts op deze blog van o.a. Rob van de Meulengraaf. In deze blogpost wil ik me meer focussen op het architecturele design van de voorkant van de website in het algemeen.

Lees verder

  |  2 reacties

Alfresco ECM in het kort

28 September 2009 10:49 Jurn de Ruijter Java

Alfresco is een Open Source Enterprise Content Management Systeem (ECM) wat verkocht wordt als product dat Document Management, Collaboration, Imaging, Workflow, Records Management en Web Content Management integreert in één oplossing.
Lees verder

  |  Eén reactie

Spring Roo, een geavanceerde code generator?

29 June 2009 11:50 Remco Bos Java

Wat is Spring Roo? Volgens de makers: “Spring Roo provides interactive, lightweight, user customizable tooling that enables rapid delivery of high performance enterprise Java applications.” En dit is Roo’s mission statement: “Roo’s mission is to fundamentally and sustainably improve Java developer productivity without compromising engineering integrity or flexibility.”

Ik vertaal dit naar “Spring Roo is een slimme code generatie tool voor Spring applicaties” en “Spring Roo belooft de productiviteit van Java ontwikkelaars te verhogen”. Dit was voor mij een reden om Spring Roo eens een keer uit te proberen.

Lees verder

  |  2 reacties

Dependency injection in een OSGI container

4 June 2009 13:26 Rob Schellhorn Java

Bepaalde vraagstukken houden software engineers al decennia lang bezig. Een klassieker is hoe we componenten moeten maken met een kleine koppeling, zodat het product makkelijk uit te breiden blijft en goed te testen is. Deze vraag is van toepassing op verschillende lagen in de software. Dependency injection (DI) kijkt vanuit de kleinste componenten: objecten. OSGI biedt de handvaten om modules makkelijk samen te laten werken. Door de twee te combineren ontstaat een ijzersterk platform om makkelijk te onderhouden software te schrijven. In deze blog post laat ik zien hoe je het DI framework Guice kan inzetten binnen een OSGI container.

Lees verder

  |  Eén reactie

JUnit testen van EJB3/JPA code met een in memory database

18 May 2009 15:21 Rudie Ekkelenkamp Java, Testen

Junit testen van EJB code is altijd al lastig geweest. Het probleem is dat je een container nodig hebt om je testen goed te kunnen draaien. Er zijn wel in container testing frameworks, maar die zijn vrij zwaar en ondersteunen niet echt het idee van een Junit test: een stuk code dat je geïsoleerd en snel kunt testen. In dit artikel wordt een opzet beschreven voor het Junit testen van EJB3/JPA code op basis van een in memory database.

Lees verder

  |  8 reacties

Google App Engine voor Java: een applicatie bouwen op basis van JPA

14 April 2009 13:09 Rudie Ekkelenkamp Java

Het grote nieuws van vorige week is bijna niemand ontgaan. De Google App Engine heeft nu ook ondersteuning voor Java. Dit nieuws kwam exact een jaar na het uitbrengen van de Engine op basis van Python. En nog beter nieuws is eigenlijk dat het niet alleen ondersteuning voor Java betreft, maar voor de JVM in het algemeen. Talen zoals Groovy, JRuby en Scala werken nu out-of-the-box op de Google App Engine. Door een aantal sandbox-restricties zullen echter niet alle frameworks out-of-the-box werken (zoals bijvoorbeeld Grails). Een lijst met ondersteunde talen en frameworks staat hier.

Lees verder

  |  Reageer

Apache Camel – Enterprise Integration met scripttalen en DSLs

30 March 2009 16:21 Peter Maas Java

“Er zijn twee dingen moeilijk in de IT”, vertelde een collega me ooit: “Een printer installeren en communiceren met een extern systeem”. In de praktijk blijken beiden vaak waar. Met printers kan ik jammer genoeg niet helpen. Met het oplossen van integratievraagstukken hopelijk wel.

Lees verder

  |  3 reacties

Struts 2: REST resources in Java

23 March 2009 10:56 Rob Schellhorn Algemeen, Java

Een tijdje terug heb ik samen met een klant nagedacht hoe een aantal lang lopende taken verdeeld kunnen worden over een aantal computers. Via een web interface moeten bezoekers makkelijk taken kunnen aanmaken zonder af te weten van het achterliggende computerpark. Na een aantal uur komt een computer met een rapport, wat weer te downloaden moet zijn voor de klant. Daarnaast moest de klant het computerpark kunnen beheren, dus computers uit het rekencluster halen of juist nieuwe toevoegen. De beheerschermen voor taken en computers (vanaf hier: workers) zijn uiteindelijk geïmplementeerd met behulp van Struts 2 waarover meer in deze blog.
Lees verder

  |  3 reacties

Java 7: tijd voor verse koffie

17 March 2009 11:47 Martin Sturm Algemeen, Java

Hoewel Java al een flink aantal jaren meegaat, wordt er toch nog steeds aan gewerkt om de taal te verbeteren zodat deze ook in de toekomst nog bruikbaar is. Java 6 is inmiddels ruim twee jaar geleden uitgebracht en begint dus een beetje ouwe koffie te worden. De meeste mensen geven voorkeur aan verse koffie, dus daarom werkt een groot aantal ontwikkelaars al aan Java 7, die we in maart 2010 kunnen verwachten. In dit artikel zal ik proberen een overzicht te geven over de huidige stand van zaken en wat we zoal in Java 7 kunnen verwachten.
Lees verder

  |  Reageer

« Eerdere artikelen