Build software that's
in step with your business

Reviews Quick Start

Apache Causeway™ enables domain-driven application development by automatically generating a UI for your Spring Boot™ apps. That means:

  • Productivity - the app is mostly business logic, with costly UI code eliminated.
  • Discovery - the business domain experts and the techies can work hand-in-hand to understand the problem space and then the solution space.
  • Ease of Use - business users will find the app easy to learn as the business concepts are front and center
  • Simple Integration - the framework automatically publishes domain events for async integration, and automatically provides a REST API for sync integration.
  • Clean Architecture - the framework ensures a clear separation of concerns within your app's internal architecture

And because Apache Causeway™ is open source, built on industry / de-facto standards such as Spring Boot™, there's no vendor lock-in.

Quotes

We gathered together some quotes from current users of the framework. You can find out who said what here.

How it works

UI & REST “for free”

Apache Causeway™ dynamically builds both a generic user interface and also a rich hypermedia REST API directly from the underlying domain objects. This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development. The UI can also be extended for specific use cases, and can be themed using Bootstrap.

Domain-Driven

The core of an Apache Causeway™ application are the domain objects, either persisted entities or view models. Business rules can be associated directly with domain objects, or can be factored out into separate services. Apache Causeway performs dependency injection everywhere to ensure that the application remains decoupled and testable.

Add-ons

Apache Causeway™ includes a large number of add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions for maps, calendars etc. All are open source and designed for out-of-the-box use or to modify as you require.

Built with

Apache Causeway™ is built on top of industry leading open source products, all licensed with business-friendly Apache Software License v2.0 or MIT.

... to create stand-alone, production-grade Spring based Applications.

... a portable implementation of the JAX-RS specification for RESTful APIs

... the reference implementation for JPA, a comprehensive open-source Java persistence solution addressing relational, XML, and database web services.

... the reference implementation for JDO, provides persistence and retrieval of data to a range of datastores using a range of APIs, with a range of query languages.

... a code generation and manipulation library for creating and modifying Java classes during the runtime of a Java application.

Quick Start

Prereqs: Java 11 and Maven 3.6+.
We recommend you try out using Linux, MacOS or WSL2
(to avoid exceeding Windows' limits due to classpath length).


Learn about Apache Causeway™ by running the minimal helloworld starter app. You can see the app running here (jpa) or here (jdo).
(These scale to zero when not in use, so please allow up to a minute for them to restart if necessary).

Develop your own Apache Causeway™ app with the structured simpleapp starter app. You can see the app running here (jpa) or here (jdo).
(These scale to zero when not in use, so please allow up to a minute for them to restart if necessary).

APP=causeway-app-helloworld
BRANCH=jdo
curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
cd $APP-$BRANCH

mvn clean install -Dskip.staging -Dskip.nightly
mvn spring-boot:run

APP=causeway-app-simpleapp
BRANCH=jdo
curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
cd $APP-$BRANCH

mvn clean install -Dskip.staging -Dskip.nightly
mvn -pl webapp spring-boot:run

  Copy text for helloworld (jdo)

  Copy text for simpleapp (jdo)

APP=causeway-app-helloworld
BRANCH=jpa
curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
cd $APP-$BRANCH

mvn clean install -Dskip.staging -Dskip.nightly
mvn spring-boot:run

APP=causeway-app-simpleapp
BRANCH=jpa
curl https://codeload.github.com/apache/$APP/zip/$BRANCH | jar xv
cd $APP-$BRANCH

mvn clean install -Dskip.staging -Dskip.nightly
mvn -pl webapp spring-boot:run

  Copy text for helloworld (jpa)

  Copy text for simpleapp (jpa)

You can also explore the Apache Causeway™ programming model through the demo app, running here (jpa) or here (jdo).
(These scale to zero when not in use, so please allow up to a minute for them to restart if necessary).

Support

Apache projects use mailing lists for support. You can subscribe by sending an email to the users list, or you can browse the archives. If you find a problem, please raise a ticket on our JIRA, or ask a question on StackOverflow.