Blog Archives
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.
Maurizio came across Isis at the beginning of the year, and since then has been working rapidly and enthusiastically to develop a new viewer using DHTMLX. Although (because of licensing restrictions) this codebase cannot be donated to Isis, it’s a substantial and impressive piece of work. If you’ve not seen it yet, there’s an online demo here and the code is on github.
Maurizio has also demonstrated the viewer as an app running on Google App Engine (the demo above is running on GAE). To do this he has identified and addressed several improvements; these have been fed back to a few changes to the JDO objectstore component, as well as new documentation on our website.
Maurizio has also had several ideas to help publicise and promote Isis, including a series of animated interviews (a draft of the first of which can be seen here).
I’d personally like to thank Maurizio for all his hard work so far, and to say that I’m very much looking forward to working with him and gaining from his experience in the future.
The DSL of the DHTMLX viewer for Isis
In my last post and previously to that I’ve publicised the work that Mylaensys (Madytyoo and chums) have been building a new viewer for Isis based on the DHTMLX javascript library. One of the most noteworthy things about this viewer is its support for a domain-specific language to describe the layout of the widgets in the UI.
Mylaensys have now blogged about the internal design of this DSL (exploiting Madytyoo’s experience early in his career building compilers). It makes for interesting reading.
Or, if you want to just play with the DSL yourself, go to the sample application running on Google App Engine. The link to change the DSL (and update the layout dynamically) is top right of the screen.
Go play with the DHTMLX viewer for Apache Isis
Mylaensys (Madytyoo and chums) have just blogged about their viewer for Apache Isis based on the DHTMLX Javascript widget library.
The post provides a bunch of tech details along points to a simple example you can play with running on Google App Engine. Here’s a quick screenshot:
Apart from looking rather pleasant, what’s notable about this viewer is the fact that it supports a DSL allowing the UI to be easily customized. Thanks must go to Marcius Brandão and colleagues for their prior work on a Naked Objects view language (and as implemented in their NO framework, Entities) for originall developing this idea.
Anyway, do check this new viewer out; I’ll pass on any feedback I get to Mylaensys.
Marrying DHTMLX with Apache Isis
Mylaensys have just publicised on their blog the fact that they are working on an integration between DHTMLX and Apache Isis.
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
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.
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.
Apache Isis Core 1.1.0, Isis Shiro Security 1.1.0, Isis Wicket Viewer 1.1.0
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
Using Google Guava’s Ordering API
We’ve been playing a bit more with Google’s Guava library – what a great library! The most recent thing we used it for was to sort out the comparators for our domain objects. Here’s how. Read the rest of this entry
Apache Isis now has Shiro integration for security
Hot on the heels of Isis’ first release as an Apache top-level project, we’ve now released a new security component that integrates with Apache Shiro.
At the same time, we’ve updated our Maven archetype (that combines Wicket, Restful and JDO) to incorporate this new Shiro security component. Read the rest of this entry
Apache Isis release v1.0.0
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.
In fact, the news is a little old by now; we got the release out just in time for Xmas 2012, Read the rest of this entry
Apache Isis codebase refactored, adopting semantic versioning
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
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 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!
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.
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
Responsibilities of the Application Layer in Domain-Driven Applications
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
Registering entity types with OpenJPA programmatically
I’ve just started work on an OpenJPA objectstore for Isis. In the normal scheme of things, one would register the entity types within the persistence.xml file. However, Isis is a framework that builds its own metamodel, and can figure out for itself which classes constitute entities. I therefore didn’t want to have to force the developer to repeat themselves, so the puzzle became how to register the entity types programmatically within the Isis code. Read the rest of this entry
Apache Isis and RDF – could be…
An interesting question came in on the Apache Isis mailing list, regarding Isis and its support for building apps that interact with RDF and semantic web technologies: Read the rest of this entry
Apache Isis refactorings
For the last week or two I’ve been doing some refactoring deep in the bowels of Apache Isis, working on simplifying some of the infrastructure there.
One of the major changes in the next release Read the rest of this entry
Restful Objects (.NET) screencasts
For those interested in the work I’ve been doing on Restful Objects, you might be interested to see that Richard Pawson has recorded some screencasts on the .NET implementation of Restful Objects.
I’ve linked to them from the Restful Objects website.
The Apache Isis impl of Restful Objects currently lags behind the .NET impl, though not too far behind. Check out Isis’ online demo to see the current state.
Apache Isis 0.2.0-incubating released
Just a quick announcement that last week we put out our second release of Apache Isis from the incubator, namely 0.2.0-incubating.
The main theme in this release is to try to simplify things a little, so that would-be users can more easily grok what Isis is about:
Read the rest of this entry
JQueryMobile demo app walk-thru
In the previous post I showed some screenshots of the simple JQueryMobile app that is hosted by the Apache Isis‘ online demo app, demonstrating one way of using the built-in Restful API. In this post, I want to look at the JQueryMobile code in a little more detail.
The app consists of a single html page, index.html, along with a number of supporting Javascript files. We start by bring in the Javascript libraries, most notably JQueryMobile and JQuery:
Read the rest of this entry
JQueryMobile on the Apache Isis’ REST API
We’re currently working towards 0.2.0 of Apache Isis (incubating), and one of the most significant new areas of functionality is the REST API that it automatically provides through the json-viewer component. As you can probably guess from the name, this viewer provides a REST interface which exposes JSON representations of the domain object models.
However, JSON representations do not a user interface make; instead the idea is that the developer will write either custom or generic UIs to consume those representations. As an example of such an app (and by way of learning a little more Javascript) I’ve put together a very simple mobile app using the recently-released JQueryMobile framework.
