Apache Causeway™ software is a framework for rapidly developing domain-driven apps in Java. This repo contains a sample app to help you quickly learn the essentials of the framework.
APACHE-2.0 License
= HelloWorld :toc: :toc-placement!:
image:https://github.com/apache/causeway-app-helloworld/workflows/Build%20w/%20Maven%20+%20Jdk%208/badge.svg[] image:https://github.com/apache/causeway-app-helloworld/workflows/Build%20w/%20Maven%20+%20Jdk%2015/badge.svg[]
This is a minimal link:https://causeway.apache.org[Apache Causeway] application, intended as a starting point to learn what the framework is all about.
For real-world development, we recommend you instead start with the link:https://github.com/apache/causeway-app-simpleapp[SimpleApp] starter app.
toc::[]
== Quick start
** Java 11 LTS (eg link:https://adoptopenjdk.net/[Adopt OpenJDK] distribution) ** Maven 3.6 or later (http://maven.apache.org/download.cgi[download])
APP=helloworld BRANCH=master
spring-instrument.jar
for load-time weaving (discussed in more detail xref:#orm-support[below]):Change "XXX" to the value that ${spring-framework.version}
resolves to in the webapp pom.xml
Browse to http://localhost:8080.
Login using:
** username: sven
** password: pass
The app runs with H2 running in-memory.
[#orm-support] == ORM Support
// EclipseLink : START
This version of the application uses EclipseLink JPA as its ORM, configured with load-time weaving. This requires that the application be run with a Java agent.
The spring-boot plugin is configured to run with this agent already. If you want to run from an IDE:
Change "XXX" to the value that ${spring-framework.version}
resolves to in the webapp pom.xml
// EclipseLink : END
// DataNucleus : START
//This version of the application uses DataNucleus as its ORM, which requires that any entities are "enhanced", a post-compile process.
//
//Normally this is done as part of a "mvn clean install", but the entities can also be enhanced explicity using:
//
//[source,bash]
//----
//mvn -pl module-simple datanucleus:enhance -o
//----
//
//This is useful to know if the application or integration test fails to bootstrap, complaining of "unenhanced entities".
//
//TIP: You can also use enhance-all.sh
// DataNucleus : END