July 15, 2015 asciidoc github jekyll

Jekyll, github and asciidoc - oh my!

Having used Wordpress to host my blog for the last few years, I thought it was time to get in with the cool kids and instead host my blog on github pages, using Jekyll.

April 18, 2015 assertj hamcrest java junit tdd

An adapter to use Hamcrest matchers as AssertJ conditions

Following on from yesterday’s post on AssertJ, here’s a tiny github repo that I put together with some utilities for AssertJ.

April 17, 2015 assertj hamcrest isisaddons java junit tdd

Converting from Hamcrest to AssertJ

Don’t quite know how I missed it all these years, but I only recently discovered AssertJ.  So I’ve started to use it in some of the Isis Addons example apps, for example the todoapp.

February 24, 2015 announce apache-isis bootstrap i18n isisaddons neo4j

[ANN] Apache Isis version 1.8.0 released

We just pushed another release of Apache Isis, and it’s a big one! New features in this release include:

December 04, 2014 announce apache-isis apache-wicket asf bootstrap

Welcoming Martin Grigorov as a new committer on Apache Isis

Martin Grigorov is now a committer and PMC member of Apache Isis.

October 21, 2014 announce apache-isis isisaddons

[ANN] Apache Isis version 1.7.0 Released

We just pushed out Isis 1.7.0, which consists of:

September 25, 2014 apache-isis how-to isisaddons java screencast

Configuring Apache Isis command profiling and auditing module add-ons

When v1.6 of Apache Isis was released a month or two back we also announced the creation of a new “add-ons” website as a place to hold reusable module of code for any Apache Isis app.

September 23, 2014 apache-isis isisaddons screencast

Configuring Apache Isis' Security Module Add-on

I recently completed a new security module that handles both authentication and authorization for Isis apps.

August 22, 2014 postgres

How to restore a PostgreSQL backup

There would seem to be several ways, but if the backup file was created by pg_dump and is actually a series of DDL and INSERT statements, then use:

July 28, 2014 announce apache-isis guava isisaddons

[ANN] Apache Isis version 1.6.0 Released

Apache Isis 1.6.0 has been released, including new and improved event bus stuff to decouple business logic within the apps, and a new companion www.isisaddons.org for housing third-party modules.

June 07, 2014 announce apache-isis apache-shiro jrebel maven restful-objects

[ANN] Apache Isis version 1.5.0 and related components Released

The Isis team is pleased to announce the release of:

June 02, 2014 apache-isis git

Deleting git tags on a remote

For some reason our git repo for Apache Isis (mirrored on github) acquired a bunch of tags in the form:

April 02, 2014 java javascript rx screencast

Observable and Iterator design pattern are the same thing - who knew?

I’ve just watched this excellent talk on Reactive Extensions - how they do Async Javascript at NetFlix.  A genuinely new idea for me (though I feel a bit dumb for only learning about RX now). Worth spending the 30 mins to watch.

March 26, 2014 angular apache-isis book-review

Still a place for books...

Like everyone else, if I need to know how use some little API, I google for the answer and then follow the links to stackoverflow.  Yesterday my searches that took me there included an error regarding a missing Windows Identity Foundation DLL, how...

March 14, 2014 announce apache-isis apache-wicket restful-objects

[ANN] Apache Isis 1.4.0 released

After 4 months development, we’ve just released Apache Isis 1.4.0, and supporting components.

January 23, 2014 apache-isis jrebel screencast

Apache Isis integration with JRebel

You probably know about JRebel already - it’s a commercial product that dynamically reloads Java classes without having to redeploy your webapp. Not necessarily the cheapest of products, but if you’re a full-time dev working on the JVM, then it c...

November 25, 2013 book-review hamcrest java jmock mockito tdd

Instant Mockito - a review

Instant Mockito is just a little book covering https://code.google.com/p/mockito/, but that’s not a bad objective in itself. Mockito, after all, is one of the most commonly used Java mocking libraries. (I happen to prefer other mocking libraries b...

November 21, 2013 apache-isis conference github

Oredev 2013 - RRRADDD!

In my last post I talked a little bit about attending Oredev 2013, and promised I’d talk a bit about my own talk.

November 14, 2013 conference

Oredev 2013

Last week I attended Oredev conference for the first time. First time in Malmo, first time in Sweden in fact.

October 25, 2013 announce apache-isis restful-objects

[ANN] Apache Isis 1.3.0 - crammed full of goodies!

Over on Apache Isis, we’ve just released a new version, 1.3.0, of the framework (core plus supporting components).

October 07, 2013 gsoc

Google Summer of Code Veteran Orgs: Apache Software Foundation

The Google open source blog has just posted the write-up that ASF provided on some of its students for GSOC 2013. I contributed a couple of paragraphs on how Apache Isis’ two students, Dimuthu Upeksha and Bhargav Golla, got on.

October 06, 2013 book-review guava

Getting Started with Google Guava - review

“Getting Started with Google Guava” isn’t a bad book to get you started with Google Guava - indeed, it’d probably be quite hard to write a bad book on Guava given just how good a library Guava is.

August 12, 2013 announce apache-isis

Welcoming Oscar Bou as a new committer to Apache Isis

I’m delighted to announce that Oscar Bou has been voted in as a committer on Apache Isis, and also to as a member of the Isis PMC. The first gives Oscar the right to commit changes directly to Isis’ codebase, the second gives him the right to be i...

July 16, 2013 ci github

Using buildreactor to monitor CI jobs

Following on from yesterday’s post (using travis-ci for github projects), I thought I’d use a Chrome plugin to monitor their status. The one I chose was buildreactor (itself hosted on github).

July 15, 2013 agile ci github maven

Enabling CI for github projects

I’ve noticed a couple of times on visiting miscellaneous github projects that there’s been a little logo indicating the state of the CI build. Hmm, thought I… I guess there’s some service out there that can be configured. Probably a bit of a pain ...

July 11, 2013 github how-to maven

Deploying artifacts to Maven central repo

I have a bunch of open source github repos, mostly related to Apache Isis, and have been exploring how to deploy these artifacts up to Maven central repo. It’s a mostly straightforward process, but I hit a few bumps along the way so thought I’d ca...

May 13, 2013 nuget powershell

Restore NuGet packages from packages.config

Another in my occasional series of wrangling with NuGet within Visual Studio.

April 29, 2013 eclipse how-to java screencast

Eclipse Tips: More refactorings (and a bit of common sense).

In this next video in my series of using Eclipse effectively, I show how how to use Eclipse’s quick-fix refactoring (and a little common sense) to restructure some hairy code into something rather more palatable.

April 26, 2013 announce apache-isis java

Welcoming Maurizio Taverna as a new committer to Apache Isis

I’m delighted to announce that Maurizio Taverna has been voted in as a committer on Apache Isis.

March 30, 2013 eclipse how-to java screencast

Eclipse Tips: using the Source menu

Everyone knows - or at least suspects - that most of the Eclipse goodies live under the Refactoring menu. However, there’s also a lot of goodness under the Source menu too.

March 23, 2013 eclipse how-to java screencast

Eclipse Tips: Quick Fix to generate code

Here’s another in my nascent series of quick tips for Eclipse. This one shows how you can use Eclipse’s quick fix feature (ctrl+1) to quickly generate code.

March 16, 2013 eclipse how-to java screencast tdd

Eclipse Tips: Extract Local Variable

When I teach my little Java TDD course, I quite often do live coding demos …especially if we’re running behind schedule and I want to catch up; I’ll skip an exercise and work through the solution. And one of the remarks I often get at the end is ...

February 13, 2013 apache-isis

Articles on SD Journal

I’ve just written a couple of articles on Apache Isis, published by the Software Developers Journal. You can download the journal for free here.

February 07, 2013 announce apache-isis apache-shiro apache-wicket maven

[ANN] Release of Apache Isis Core 1.2.0 and components

The Apache Isis team is pleased to announce the release of Apache Isis 1.2.0 and related components:

February 07, 2013 announce apache-isis apache-shiro apache-wicket gmap3

[ANN] Apache Isis Core 1.1.0, Isis Shiro Security 1.1.0, Isis Wicket Viewer 1.1.0

A few days ago we pushed out a new point release of Apache Isis Core (v1.1.0), along with two of its components Isis Shiro Security (v1.1.0) and the Isis Wicket Viewer (v1.1.0). The Quickstart Archetype that combines Wicket, Shiro, Restful and JD...

January 24, 2013 announce apache-isis

[ANN] Apache Isis release v1.0.0

Following on from our recent graduation as an Apache top level project and the work we've done since ..

January 16, 2013 apache-isis git

Apache Isis source moves to Git

Following on from Isis’ recent graduation as an Apache top-level project, the Isis community also voted to move our codebase over from Subversion and into Git. That’s not to say that Subversion is a bad SCM - far from it - but Git has a number of...

January 12, 2013 announce apache-isis asf

Apache Isis graduates as a top-level Apache project, gets a new website

Somewhat delayed news, but just to say that a couple of months ago (Oct 17 2012, to be precise), the Apache board approved the resolution to establish Isis as a top-level project.

December 20, 2011 java junit tdd

DB unit testing with dbUnit, JSON, HSQLDB and JUnit Rules

In this week’s run of my TDD course, I thought it would be interesting to write a little fixture to make it easier to use dbUnit.  My original thought was just to teach dbUnit about JSON, but it turns out that Lieven Doclo has done that already.  ...

October 11, 2009 eclipse intellij

Converting Eclipse templates to IntelliJ IDEA

The Naked Objects distribution provides a set of Eclipse code templates to (among other things) rapidly code up properties, collections, actions and their supporting methods. These are also listed in appendix B of the book.

September 09, 2009 ddd

DuckTyping in Java (and the Ubiquitous Language)

A utility for implementing duck typing in Java, and why you probably shouldn't use it.

August 20, 2009 apache-isis ddd

Exploring Domains and Collaborating with Domain Experts

Exploration and experimentation are essential in DDD. Rather than stopping the moment we get one useful model, we should look for alternatives that might reveal a deeper insight.

August 18, 2009 naked-objects

See It, Use It, Do It

The Naked Objects programming model is designed to allow us to write behaviourally complete objects, ones that have a full set of responsibilities. Part and parcel of these responsibilities is in enforcing preconditions for interacting with the o...

July 24, 2009 apache-isis ddd

Hexagonal Architecture for Naked Objects

A view of the hexagonal architecture, taken from my DDD book.

November 27, 2008 ddd

Interface Segregation Principle

What techniques do you use to identify implicit concepts when modelling systems?

November 20, 2008 java jmock tdd

JMock Actions API

I use JMock as my preferred mocking library. Most of the time the expectations I write are pretty simple, indicating that a mock should return this value, or should throw this exception. For example:

August 11, 2008 java

CollectionUtils.transformedCollection(...) : subtlety or bug?

I’ve been tidying up some of the Naked Objects handling of collection recently, and thought it made sense to use other people’s good work. Since the Apache Commons Collections has been around for donkey’s years, seemed like a sensible enough depe...

July 21, 2008 java maven

maven-bundle-plugin bundle packaging lifecycle

In Maven the element in the pom.xml corresponds to a lifecycle to use to build the code. The lifecycle in turn comprises a number of phases, each of which is bound to goals provided by plugins. (NB: since this is a 1:1 relationship we can use p...