Author Archives: danhaywood
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.
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.
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 “thanks for the course, but what I also found useful was learning about how to use Eclipse effectively”.
Well, I guess I have used Eclipse for over 10 years now, so I suppose I am reasonably familiar with it. So I thought I’d show some of these tips by way of a series of screencasts.
The first one in the series is nice and simple: the “Extract Local Variable” refactoring, and its corollary, “Inline Variable”; something I use an awful lot when working on Apache Isis codebase. You’ll find it just below…
They previously have integrated DHTMLX and Spring Framework (DHTMLX Spring Link), so they have a proven track record… and I’ve been impressed how quickly they’ve produced some early prototypes.
So if the idea of rapidly building domain-driven apps with a customizable UI appeals, then keep an eye on their progress. The Isis mailing lists would be a good place to subscribe
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.
The first article is a general introduction to Apache Isis, while the second looks in detail at Isis’ RESTful APIs.
To download the journal, you do need to register, but it won’t cost you anything other than your email address.
A few days ago we (that is to say, the Apache Isis team) 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 JDO also got an update (v1.0.2).
New and notable features in this release are: Read the rest of this entry
Following on from recent graduation as an Apache top level project and the work we’ve done since (new website, moving to git, semantic versioning), I’m proud to announce that Isis 1.0.0 has been released.
Following on from Isis’ recent graduation as an Apache top-level project, I also blogged about how we have a new CMS-based site and also how we’ve moved our code from Subversion and into Git. This is also part of a general theme to make Isis as easy as possible to contribute back to; all about growing the community.
Another change that we’ve made is that we’ve refactored the codebase into separately releasable components. Isis has Read the rest of this entry
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 advantages over it, not least the fact that Git makes it easier for users to contribute back patches. This is helped in no small part by the fact that ASF mirrors the code into github; you can find Isis’ codebase at http://github.com/apache/isis.
You can find details on how to get started with Isis and git at our website; you’ll even find a nice page (with pictures!) that describes the process, and a crib sheet for all the useful git commands to use to contribute back changes. Check it out!
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.
This is a big deal. The Apache Software Foundation is all about establishing viable open source communities with software developed “out in the open”, and with squeaky clean intellectual property. The reason Apache has an incubator is to ensure that these principles are followed.
So, after a couple of years in the incubator Read the rest of this entry
One requirement that most business apps have is to be able to dynamically generate Word documents. For scalar non-repeating data this is not too difficult in .docx; indeed the file format has built-in support for data binding using Custom XML Parts. However, there is no support for repeating data, at least, not prior to Word 2013. Which is where a little domain service that I’ve been working on comes into play Read the rest of this entry
My installation of Eclipse Juno seemed to have got its knickers in rather a twist, so just spent a “happy” hour reinstalling the damn thing.
Anyway, here’s what my setup currently consists of:
It’s standard practice to build enterprise apps in layers: each layer has its own set of responsibilities, providing a separation of concerns. In Evans’ DDD book, layered architecture is one of his named patterns, its intent being to isolate the domain layer from the adjacent layers of application and infrastructure. The presentation layer is, of course, the other standard layer, sitting on top of the application layer:
- presentation layer
- application layer
- domain layer
- infrastructure layer
Of these layers, though, it’s the application layer that seems to cause the most difficulty, Read the rest of this entry
Since I’m using DataNucleus to automatically create the database schema, the build-debug cycle is:
- to run the app
- inspect the resultant schema
- drop all the tables
- change the domain object annotations/metadata
and then go round the loop again.
What with foreign-key constraints between tables, step (3) is not exactly trivial. So it seemed like it’d be a good idea to write a little script to simplify step (3) of the above, namely to drop all the tables in my (development!) database. Here’s what I came up with… Read the rest of this entry
I’m running my little TDD course again, and (as usual) it’s given rise to another small idea to make unit testing easier: provide Mockito-like automocking (using a @Mock annotation), and in addition perform autowiring of all mocks into the class under test. Read the rest of this entry
I work as a committer on Apache Isis. On setting up a new PC, I realised that I’ve forgotten my ASF committer password. I popped over to id.apache.org, but found that the “reset password” button didn’t work, failing with an “Encryption failed” error.
This post is mostly a “note to self” on how I fixed that. Read the rest of this entry