Build software that's
in step with your business

 Reviews  Quick Start    Docs   

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

  • Productivity - your app is mostly business logic, with costly UI code eliminated.
  • Discovery - you can work hand-in-hand with your business domain experts, to understand the problem space and to explore and then select a solution within the solution space.
  • Ease of Use - your business users will find the app easy to learn, with the business concepts front and center
  • Simple Integration - you can integrate easily with other systems, through domain events published automatically for async integration, and with an automatically provided REST API for sync integration.
  • Clean Architecture - you will find it easy to maintain a clear separation of concerns within your app's internal architecture

And because Apache Causeway™ is open source, running on top of Spring Boot™, you won't be locked into a vendor nor even the framework; the clean separation of concerns means you could even lift-n-shift your domain logic to run on some other framework if need be.

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).


Try out ...

Try out the framework with the minimal helloworld starter app.

Run it locally (JPA or JDO) using:

docker run -p 8080:8080 apache/causeway-app-helloworld:jpa-SNAPSHOT
docker run -p 8080:8080 apache/causeway-app-helloworld:jdo-SNAPSHOT

Build from source (JPA or JDO) using:

APP=causeway-app-helloworld
BRANCH=jpa   # or 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

  Copy text for helloworld (jpa)

Develop your own ...

Develop your own app with the structured simpleapp starter app.

Run it locally (JPA or JDO) using:

docker run -p 8080:8080 apache/causeway-app-simpleapp:jpa-SNAPSHOT
docker run -p 8080:8080 apache/causeway-app-simpleapp:jdo-SNAPSHOT

Build from source (JPA or JDO) using:

APP=causeway-app-simpleapp
BRANCH=jpa   # or 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 simpleapp (jpa)

Learn and Explore...

You can also explore the Apache Causeway™ programming model through the demo app, which illustrates many of the framework's annotations and programming conventions.

docker run -p 8080:8080 apache/causeway-app-demo-jpa:latest
docker run -p 8080:8080 apache/causeway-app-demo-jdo:latest

NOTE: The online apps all scale to zero when not in use, so please allow up to a minute for it to restart if necessary.

Support

We provide support using either our Slack channel, or through mailing lists for support, use the links below to join. Most users prefer to use Slack, but we always make formal announcements on the users list; you can also browse the mailing list archives. If you find a problem, please raise a ticket on our JIRA, or ask a question on StackOverflow.