# isis-app-helloworld **Repository Path**: mirrors_apache/isis-app-helloworld ## Basic Information - **Project Name**: isis-app-helloworld - **Description**: 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. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: v3-jpa - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-22 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = 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. [TIP] ==== For real-world development, we recommend you instead start with the link:https://github.com/apache/causeway-app-simpleapp[SimpleApp] starter app. It provides more structure and includes examples of fixtures, unit tests, integration tests, and BDD (Cucumber) specs. ==== toc::[] == Quick start * install prereqs: ** Java 21 LTS (eg link:https://adoptopenjdk.net/[Adopt OpenJDK] distribution) ** Maven 3.9.10 or later (http://maven.apache.org/download.cgi[download]) * download and unzip + [source,bash] ---- APP=helloworld BRANCH=master REPO=causeway-app-$APP curl "https://codeload.github.com/apache/$REPO/zip/$BRANCH" | jar xv mv $REPO-$BRANCH $REPO cd $REPO ---- * Build using Maven: + [source,bash] ---- mvn clean install ---- * Download the `spring-instrument.jar` for load-time weaving (discussed in more detail xref:#orm-support[below]): + [source,bash] ---- mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX ---- + Change "XXX" to the value that `${spring-framework.version}` resolves to in the webapp `pom.xml` * Run using Maven: + [source,bash] ---- mvn spring-boot:run ---- * 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: * first, you might wish to copy the file locally: + [source,bash] ---- cp ~/.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar ---- + Change "XXX" to the value that `${spring-framework.version}` resolves to in the webapp `pom.xml` * Then specify the agent as a VM option: + [source,bash] ---- -javaagent:lib/spring-instrument.jar ---- // 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