blob: de3430a142e14af9c13ccb0e1728be1982fd8b51 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
~
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>apache causeway</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="" name="keywords">
<meta content="" name="description">
<!-- Favicons -->
<link href="_/img/home/favicon.png" rel="icon">
<link href="_/img/home/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="_/css/fonts-googleapis-com.css" rel="stylesheet">
<!-- Bootstrap CSS File -->
<link href="_/js/home/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Libraries CSS Files -->
<link href="_/js/home/lib/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="_/js/home/lib/animate/animate.min.css" rel="stylesheet">
<link href="_/js/home/lib/ionicons/css/ionicons.min.css" rel="stylesheet">
<link href="_/js/home/lib/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet">
<link href="_/js/home/lib/magnific-popup/magnific-popup.css" rel="stylesheet">
<link href="_/js/home/lib/ionicons/css/ionicons.min.css" rel="stylesheet">
<!-- Main Stylesheet File -->
<link href="_/css/home/style.css" rel="stylesheet">
<!-- Custom Stylesheet File -->
<link href="_/css/site-custom.css" rel="stylesheet">
<!-- Algolia -->
<link rel="stylesheet" href="_/css/docsearch.min.css"/>
<!-- =======================================================
Theme Name: Reveal
Theme URL: https://bootstrapmade.com/reveal-bootstrap-corporate-template/
Author: BootstrapMade.com
License: https://bootstrapmade.com/license/
======================================================= -->
</head>
<body id="body">
<!--==========================
Top Bar
============================-->
<section id="topbar" class="d-none d-lg-block">
<div class="container clearfix">
<div class="contact-info float-left">
<i class="fa fa-envelope-o"></i> <a href="mailto:users@causeway.apache.org">users@causeway.apache.org</a>
</div>
<div class="social-links float-right">
<a title="Mailing List" href="docs/latest/support/mailing-list.html" class="email"><i class="fa fa-at"></i></a>
<a title="Slack Channel" href="docs/latest/support/slack-channel.html" class="slack"><i class="fa fa-slack"></i></a>
<a title="Bug Reports (Jira)" href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=87" class="bug"><i class="fa fa-bug"></i></a>
<a title="Stackoverflow" href="https://stackoverflow.com/questions/tagged/causeway" class="stackoverflow"><i class="fa fa-stack-overflow"></i></a>
<a title="Twitter" href="https://twitter.com/ApacheCauseway" class="twitter"><i class="fa fa-twitter"></i></a>
</div>
</div>
</section>
<!--==========================
Header
============================-->
<header id="header">
<div class="container">
<div id="logo" class="pull-left">
<!--
<h1><a href="#body" class="scrollto">Reve<span>al</span></a></h1>
-->
<h1><a href="#body" class="scrollto">
<img src="_/img/home/causeway-logo-200-148.png"></img>
<!--<span class="asf">apache</span>-->
<span class="brand">causeway</span></a></h1>
</div>
<nav id="nav-menu-container">
<ul class="nav-menu">
<li class="menu-has-children">
<a href="#body">About</a>
<ul>
<li><a href="#why">Why?</a></li>
<li><a href="#testimonials">What do users say?</a></li>
<li><a href="#how-it-works">How does it work?</a></li>
<li><a href="#services">What's it built with?</a></li>
<li><a href="#call-to-action">Getting started</a></li>
<li><a href="#contact">Support</a></li>
</ul>
</li>
<li><a href="#call-to-action">Quick Start</a></li>
<li class="menu-has-children">
<a href="docs/latest/about.html">Docs</a>
<ul>
<li><a href="docs/latest/about.html">Table of Contents</a></li>
<li><hr/></li>
<li><a href="docs/latest/landing-page/guides.html">Guides</a></li>
<li><a href="docs/latest/landing-page/components.html">Components</a></li>
<li><a href="extensions/latest/about.html">Extensions</a></li>
<li><a href="valuetypes/latest/about.html">Value Types</a></li>
</ul>
</li>
<li class="menu-has-children">
<a href="#">Download</a>
<ul>
<li><a href="docs/latest/starters/about.html">Starter Apps</a></li>
<li><a href="docs/latest/downloads/how-to#formal-releases">Source Releases</a></li>
<li><a href="docs/latest/landing-page/releases.html">Binary Releases</a></li>
<li><a href="docs/latest/downloads/how-to#source-code">Source @ Github</a></li>
</ul>
</li>
<li class="menu-has-children">
<a href="">ASF</a>
<ul>
<li><a href="#contact">Support</a></li>
<li><hr/></li>
<li><a href="https://www.apache.org/">Apache Home Page</a></li>
<li><a href="https://www.apache.org/events/current-event">Events</a></li>
<li><a href="https://www.apache.org/licenses/">License</a></li>
<li><a href="https://www.apache.org/security/">Security</a></li>
<li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a>
<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li><hr/></li>
<li><a href="https://whimsy.apache.org/board/minutes/Causeway.html">PMC Board Minutes</a></li>
</ul>
</li>
</ul>
</nav><!-- #nav-menu-container -->
</div>
</header><!-- #header -->
<section id="intro">
<div class="intro-content">
<h2>Build software that's<br/>in step with your business</h2>
<!--
<img src="_/img/home/causeway-logo-984x286.png"/>
-->
<div>
<p>
<a href="#testimonials" class="btn-projects scrollto">&nbsp;Reviews&nbsp;</a>
<a href="#call-to-action" class="btn-get-started scrollto">Quick Start</a>
<a href="docs/latest/about.html" class="btn-docs">&nbsp;&nbsp;&nbsp;Docs&nbsp;&nbsp;&nbsp;</a>
</p>
<p>
<div class="nav-panel-search hide-for-print">
<input id="algolia-search-input" placeholder="Search"></span>
</div>
</p>
</div>
</div>
<div id="intro-carousel" class="owl-carousel" >
<!-- https://unsplash.com/photos/YlF-IyTE6sA -->
<!-- https://palette.fm/color/filters 'pastel notes' to colourize -->
<div class="item" style="background-image: url('_/img/home/intro-carousel/intro-carousel-1.jpg');"></div>
</div>
</section>
<main id="main">
<!--==========================
Why Section
============================-->
<section id="why" class="wow fadeInUp">
<div class="container">
<div class="row">
<div class="col-lg-6 why-img">
<!--<img src="_/img/home/why-img.jpg" alt="">-->
<img src="_/img/home/ToDoAppDashboard-skewed.png" height="500px" alt="">
</div>
<div class="col-lg-6 content">
<h3><b>Apache Causeway™ enables domain-driven application development by dynamically generating a UI and API for your Spring Boot™ apps. That means:</b></h3>
<ul>
<li><i class="ion-android-checkmark-circle"></i><span><b>Productivity</b> - your app is mostly business logic, with costly UI code eliminated.</span></li>
<li><i class="ion-android-checkmark-circle"></i><span><b>Discovery</b> - 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.</span></li>
<li><i class="ion-android-checkmark-circle"></i><span><b>Ease of Use</b> - your business users will find the app easy to learn, with the business concepts front and center</span></li>
<li><i class="ion-android-checkmark-circle"></i><span><b>Simple Integration</b> - you can integrate easily with other systems using the dynamically provided <a href="https://graphql.org/">GraphQL</a> and <a href="https://en.wikipedia.org/wiki/REST">RESTful</a> APIs, or by the automatically published domain events for async comms.</span></li>
<li><i class="ion-android-checkmark-circle"></i><span><b>Clean Architecture</b> - you will find it easy to maintain a clear separation of concerns within your app's internal architecture</span></li>
</ul>
<p>And because Apache Causeway™ is <b>open source</b>, 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 the domain logic of your app to run elsewhere if need be.</p>
</div>
</div>
</div>
</section>
<!--==========================
Testimonials
============================-->
<section id="testimonials" class="wow fadeInUp">
<div class="container">
<div class="section-header">
<h2>Quotes</h2>
<p>We gathered together some quotes from current users of the framework. You can find out who said what <a href="docs/latest/quotes/quotes.html">here</a>.</p>
</div>
<div class="owl-carousel testimonials-carousel">
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
I'm super happy with Apache Causeway! It allows us to move forward at an amazing speed.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Martin Hesse</h3>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway' philosophy is awesome - it drives you to focus on the domain model and encourages you to practice Behavior Driven Development.
In addition, it brings the team together, sets the common platform and provides the right set of tools (Wicket Viewer OOUI, REST APIs, Swagger UI, Cucumber Framework) to work collaboratively which is simply great for the software development.
It's a fabulously fantastic framework!
A big thank you to the Apache Causeway team.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Mansingh Shitole</h3>
<h4>Senior Developer, PRIME Research, Germany - Frankfurt / Mainz</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway enabled us to concentrate on modelling the domain and getting the UI and REST Interface with nearly no effort so we could build a fast and reliable application. Now we've started using it for the second project and I'm still very impressed by the framework and the community behind it.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Timothy Simecsek</h3>
<h4>NTT DATA Osterreich GmbH</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
We'd been looking for a RAD-tool for building our app; after trying different tools, Apache Causeway gave us the most confidence for getting the job done. It's really remarkable how easy it is to use, while contributors and users on the Causeway' active mailing list are ready to help on more advanced topics.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Erik de Hair</h3>
<h4>pocos.nl</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
A fantastic framework! With Apache Causeway we can prototype a deployable application in minutes rather than days.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Jeremy Branham</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
With its automatic UI and REST web services generation, Apache Causeway kept our developers amazed and happy. Having had strenuous experiences with architecture and infrastructure concerns differing from project to project, it's like having back the fun in software development
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Willie Loyd Tandingan</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway' focus on the business domain improves communication between our end-users, architects and developers. Having a better application in a fraction of the time and cost is something we highly appreciate.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Cesar Lugo</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
The Apache Causeway team is very supportive. They even added new functionality for Summernote when I needed a WYSIWYG editor in my prototype project.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Marianne Hagaseth</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
What interests me most about Apache Causeway is its goal of making both developers and users co-owners of their domain models. Apache Causeway will be of interest to businesses who see their custom software as a strategic investment. It's not trying to be all things to all people, but it has depth and also, I predict, a bright future.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Steve Cameron</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
As students most of us prefer sticking with business logic than spending much time with UX enhancements. Apache Causeway provides a great platform to create a perfectly working prototypes with loads of inbuilt UX concerns and customizations without worrying a single bit on the GUI perspective.
And I must say this: "Great Support from the development team"
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Vishma Dias</h3>
<h4>University of Moratuwa, Sri Lanka.</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway has allowed us to be focused on the Domain instead of infrastructure issues. The extensive metamodel let us further automate and enhance our custom viewer and integrate with external frameworks.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Nacho Canovas</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway provided us with a great starting point for our app; we simply took the todoapp archetype and used it as a template to help set up our integration tests and BDD specs. We were productive almost immediately
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Vladimir Nisevic</h3>
<h4>A1 Telekom Austria</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway enabled us to focus on the problem domain and data quality and - because the UI was generated for us by the framework - not get distracted by UI concerns. Identified security issues were quickly addressed by the Apache Causeway committers.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3></h3>
<h4>Architect</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
We use Apache Causeway because of its simple and fast user interface generation.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Andreas Lechner</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway is an easy to learn, efficient and productive RAD platform.
Further I can say it is evolving to be "the best RAD platform" without any exaggerations.
The help from the community is simply wonderful.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Theekshana Dilshan</h3>
<h4>Computer Science and Engineering, University of Moratuwa, Sri Lanka.</h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
Apache Causeway is one of the best tools for hackathons. Given a 2 day hackathon challenge I have the perfect framework to create my prototype helping me to focus on business logic.
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3>Sunand Padmanabhan</h3>
<h4></h4>
</div>
<div class="testimonial-item">
<p>
<img src="_/img/home/quote-sign-left.png" class="quote-sign-left" alt="">
From a Sprint retrospective, the criticism of one lead developer sounded more like praise:
"The problem is that if we show this to the customer they will think that all the work is done."
<img src="_/img/home/quote-sign-right.png" class="quote-sign-right" alt="">
</p>
<h3></h3>
<h4>provided by Ged Byrne</h4>
</div>
</div>
</div>
</section>
<!--==========================
How it works
============================-->
<section id="how-it-works">
<div class="container">
<div class="section-header">
<h2>How it works</h2>
</div>
<div class="row">
<div class="col-lg-4">
<div class="box wow fadeInUp">
<h2>UI &amp; APIs &ldquo;for free&rdquo;</h2>
<p class="description">Apache Causeway™ dynamically builds a generic user interface for end-users, and also
a complete <a href="https://graphql.org/">GraphQL</a> API and a rich hypermedia
<a href="https://en.wikipedia.org/wiki/REST">RESTful API</a>, with both behaviour and structure inferred
from the underlying domain objects.
This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development.
The UI is themed using Bootstrap.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInUp" data-wow-delay="0.1s">
<h2>Domain-Driven</h2>
<p class="description">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.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInUp" data-wow-delay="0.1s">
<h2>Add-ons</h2>
<p class="description">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 for you to modify as required.</p>
</div>
</div>
</div>
</div>
</section>
<!--==========================
Built with
============================-->
<section id="services">
<div class="container">
<div class="section-header">
<h2>Standing on the shoulders of giants</h2>
<p>Apache Causeway™ is built on top of industry leading open source products, all licensed with the business-friendly licenses of either Apache™ Software License v2.0 or MIT.</p>
</div>
<div class="row">
<div class="col-lg-4">
<div class="box wow fadeInLeft" data-wow-delay="0.1s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://spring.io/projects/spring-boot">
<img src="_/img/home/built-with/spring-2.svg" width="220px" alt="Spring Boot™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">Spring Boot™ is the de&nbsp;facto way to create stand-alone, production-grade Spring™-based applications.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInUp" data-wow-delay="0.1s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://wicket.apache.org">
<img src="_/img/home/built-with/apache-wicket.svg" width="180px" alt="Apache Wicket™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">Apache Wicket™ is an open source Java™ component oriented web application framework that powers thousands of web applications and websites.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInRight" data-wow-delay="0.1s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://getbootstrap.com/">
<img src="_/img/home/built-with/bootstrap-logo.svg" height="60px" alt="Bootstrap™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">Bootstrap™ is a powerful, extensible, and feature-packed frontend toolkit.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInLeft" data-wow-delay="0.2s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://www.graphql-java.com/">
<img src="_/img/home/built-with/graphql-java.png" height="80px" alt="GraphQL Java™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">GraphQL Java is the Java™ implementation of the <a href="https://spec.graphql.org/">GraphQL specification</a>.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInUp" data-wow-delay="0.2s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://resteasy.dev">
<img src="_/img/home/built-with/resteasy_logo_600x.gif" height="75px" alt="RESTEasy™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">RESTEasy™ is an implementation of the <a href="https://github.com/eclipse-ee4j/jaxrs-api">Jakarta™ RESTful Web Services</a> specification for building RESTful Web Services and RESTful Java applications.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInRight" data-wow-delay="0.2s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://bytebuddy.net">
<img src="_/img/home/built-with/byte-buddy.png" height="75px" alt="Byte Buddy™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">ByteBuddy™ is a code generation and manipulation library for creating and modifying Java™ classes during the runtime of a Java™ application.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInLeft" data-wow-delay="0.3s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://www.eclipse.org/eclipselink/">
<img src="_/img/home/built-with/EclipseLink.png" width="200px" height="65px" alt="EclipseLink™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">EclipseLink™ is the reference implementation for JPA and a comprehensive open-source Java™ persistence solution addressing relational, XML, and database web services.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInUp" data-wow-delay="0.3s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://www.datanucleus.org">
<img src="_/img/home/built-with/datanucleus-logo.png" width="220px" alt="DataNucleus AccessPlatform™" style="margin-left: -30px;"/>
</a>
</div>
<p class="description">DataNucleus™ is the reference implementation for <a href="https://db.apache.org/jdo/">JDO</a>, provides persistence and retrieval of data to a range of datastores using a range of APIs, with a range of query languages.</p>
</div>
</div>
<div class="col-lg-4">
<div class="box wow fadeInRight" data-wow-delay="0.3s" style="min-height: 400px;">
<div class="pic" style="height: 105px;">
<a href="https://projectlombok.org/">
<img src="_/img/home/built-with/project-lombok.png" height="75px" alt="Project Lombok" style="margin-left: -30px;">
</a>
</div>
<p class="description">Project Lombok™ is a library that automatically plugs into your editor and build tools, spicing up your Java™.</p>
</div>
</div>
</div>
</div>
</section>
<!--==========================
Call To Action
============================-->
<section id="call-to-action" class="wow fadeInUp">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center text-lg-left">
<h3 class="cta-title">Quick Start</h3>
<div class="row">
<div class="col-lg-12 text-left text-lg-left">
<p class="cta-text text-center" style="margin-block-end: 0; ">
Prereqs: v3.x: Java 17 and Maven 3.6+; v2.x: Java 11<br/>
We recommend you try out using Linux, MacOS or WSL2 <br/>
(to <a href="https://github.com/spring-projects/spring-boot/issues/17766">avoid exceeding</a> Windows' limits due to classpath length).
</p>
<br/>
</div>
<div class="col-lg-6 text-left text-lg-left">
<h4 class="cta-text">Try out ...</h4>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Try out the framework with the minimal <a href="docs/latest/starters/helloworld.html">helloworld</a> starter&nbsp;app.
<p>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Run it locally using:
<pre id="helloworld-docker-text" style="margin-top: 5px">
docker run -p 8080:8080 apache/causeway-app-helloworld:latest</pre>
<p>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Build from source (JPA or JDO) using:
<pre id="helloworld-jpa-text">
APP=causeway-app-helloworld
VARIANT="3-jpa" # or: "3-jdo" ; "2-jpa" ; "2-jdo"
curl https://codeload.github.com/apache/$APP/zip/v$VARIANT | jar xv
cd $APP-$VARIANT
mvn clean install -Dskip.staging -Dskip.nightly
mvn spring-boot:run</pre>
</div>
<div class="col-lg-6 text-left text-lg-left">
<h4 class="cta-text">Develop your own ...</h4>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Develop your own app with the structured <a href="docs/latest/starters/simpleapp.html">simpleapp</a> starter&nbsp;app.
<p>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Run it locally using:
<pre id="simpleapp-docker-jpa-text" style="margin-top: 5px">
docker run -p 8080:8080 apache/causeway-app-simpleapp:latest</pre>
<p>
<p class="cta-text text-left" style="margin-block-end: 0; ">
Build from source (JPA or JDO) using:
<pre id="simpleapp-jpa-text">
APP=causeway-app-simpleapp
VARIANT="3-jpa" # or: "3-jdo" ; "2-jpa" ; "2-jdo"
curl https://codeload.github.com/apache/$APP/zip/v$VARIANT | jar xv
cd $APP-$VARIANT
mvn clean install -Dskip.staging -Dskip.nightly
mvn -pl webapp spring-boot:run</pre>
</div>
</div>
<div class="row">
<div class="col-lg-2 text-left text-lg-left">
</div>
<div class="col-lg-8 text-left text-lg-left">
<h4 class="cta-text" style="margin-top: 20px">Learn and Explore...</h4>
<p class="cta-text text-left" style="margin-block-end: 0; margin-top: 20px;">
You can also explore the Apache Causeway™ programming model through the reference app, which illustrates many of the framework's annotations and programming conventions.
<br/>
<p class="cta-text text-left" style="margin-block-end: 0; ">
<pre id="demoapp-docker-text" style="margin-top: 5px">
docker run -p 8080:8080 apache/causeway-app-demo-jpa:latest # or: ...-jdo:latest</pre>
<br/>
<p>
</div>
<div class="col-lg-2 text-left text-lg-left">
</div>
</div>
<div class="row">
<div class="col-lg-12 text-left text-lg-left">
<p class="cta-text text-center" style="margin-block-end: 0; margin-top: 20px;">
<b>NOTE</b>: The online apps all scale to zero when not in use, so please allow up to a minute for it to restart if necessary.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!--==========================
Support
============================-->
<section id="contact" class="wow fadeInUp">
<div class="container">
<div class="section-header">
<h2>Support</h2>
<p>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.</p>
</div>
<div class="row contact-info">
<div class="col-md-4">
<div class="contact-email">
<i class="ion-ios-filing-outline"></i>
<h3>Slack</h3>
<p><a href="docs/latest/support/slack-channel.html">Join #apache-causeway <br/>(on the ASF slack workspace)</a></p>
</div>
</div>
<div class="col-md-4">
<div class="contact-email">
<i class="ion-ios-email-outline"></i>
<h3>Subscribe</h3>
<p><a href="mailto:users-subscribe@causeway.apache.org">users mailing list</a> <br/>(<a href="https://lists.apache.org/list.html?users@causeway.apache.org">archives</a>)</p>
<p><a href="mailto:dev-subscribe@causeway.apache.org">dev mailing list</a> <br/>(<a href="https://lists.apache.org/list.html?dev@causeway.apache.org">archives</a>)</p>
</div>
</div>
<div class="col-md-4">
<div class="contact-email">
<i class="ion-ios-help-outline"></i>
<h3>Help</h3>
<p><a href="https://issues.apache.org/jira/projects/CAUSEWAY">Jira</a></p>
<p><a href="https://stackoverflow.com/questions/tagged/causeway">Stack Overflow</a></p>
</div>
</div>
</div>
</div>
</section>
</main>
<!--==========================
Footer
============================-->
<footer id="footer">
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="copyright">
Copyright ©2010~2024 The Apache Software Foundation, licensed under the Apache License, v2.0.
Apache, the Apache feather logo, Apache Causeway™, and the Apache Causeway project logo are all trademarks of The Apache Software Foundation.
</div>
</div>
<div class="col-md-4">
<div class="copyright">
Website <a href="https://bootstrapmade.com/reveal-bootstrap-corporate-template/">template</a>
</div>
<div class="credits">
<!--
All the links in the footer should remain intact.
You can delete the links only if you purchased the pro version.
Licensing information: https://bootstrapmade.com/license/
Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/buy/?theme=Reveal
-->
designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
</div>
</div>
</div>
</div>
</footer><!-- #footer -->
<a href="#" class="back-to-top"><i class="fa fa-chevron-up"></i></a>
<!-- JavaScript Libraries -->
<script src="_/js/home/lib/jquery/jquery.min.js"></script>
<script src="_/js/home/lib/jquery/jquery-migrate.min.js"></script>
<script src="_/js/home/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="_/js/home/lib/easing/easing.min.js"></script>
<script src="_/js/home/lib/superfish/hoverIntent.js"></script>
<script src="_/js/home/lib/superfish/superfish.min.js"></script>
<script src="_/js/home/lib/wow/wow.min.js"></script>
<script src="_/js/home/lib/owlcarousel/owl.carousel.min.js"></script>
<script src="_/js/home/lib/magnific-popup/magnific-popup.min.js"></script>
<script src="_/js/home/lib/sticky/sticky.js"></script>
<script>
document.querySelector('#helloworld-jdo-copy').addEventListener('click', async event => {
if (!navigator.clipboard) {
document.querySelector('#helloworld-jdo-copy').remove();
return
}
const text = document.querySelector('#helloworld-jdo-text').innerHTML;
try {
await navigator.clipboard.writeText(text);
event.target.textContent = 'Copied to clipboard';
} catch (err) {
alert("Failed to copy :-(", err)
}
});
document.querySelector('#helloworld-jpa-copy').addEventListener('click', async event => {
if (!navigator.clipboard) {
document.querySelector('#helloworld-jpa-copy').remove();
return
}
const text = document.querySelector('#helloworld-jpa-text').innerHTML;
try {
await navigator.clipboard.writeText(text);
event.target.textContent = 'Copied to clipboard';
} catch (err) {
alert("Failed to copy :-(", err)
}
});
document.querySelector('#simpleapp-jdo-copy').addEventListener('click', async event => {
if (!navigator.clipboard) {
document.querySelector('#simpleapp-jdo-copy').remove();
return
}
const text = document.querySelector('#simpleapp-jdo-text').innerHTML;
try {
await navigator.clipboard.writeText(text);
event.target.textContent = 'Copied to clipboard';
} catch (err) {
alert("Failed to copy :-(", err)
}
})
document.querySelector('#simpleapp-jpa-copy').addEventListener('click', async event => {
if (!navigator.clipboard) {
document.querySelector('#simpleapp-jpa-copy').remove();
return
}
const text = document.querySelector('#simpleapp-jpa-text').innerHTML;
try {
await navigator.clipboard.writeText(text);
event.target.textContent = 'Copied to clipboard';
} catch (err) {
alert("Failed to copy :-(", err)
}
})
</script>
<!-- Template Main JavaScript File -->
<script src="_/js/home/main.js"></script>
<script src="_/js/docsearch.min.js"></script>
<script>
function focusSearchInput () { document.querySelector('#algolia-search-input').focus() }
var search = docsearch({
appId: '5ISP5TFAEN',
apiKey: '0fc51c28b4ad46e7318e96d4e97fab7c',
indexName: 'causeway-apache-org',
inputSelector: '#algolia-search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
debug: false,
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
focusSearchInput()
window.addEventListener('load', focusSearchInput);
</script>
<!--
docsearch options:
https://docsearch.algolia.com/docs/behavior/
-->
<!--
https://www.algolia.com/doc/api-reference/api-parameters/
algoliaOptions: { hitsPerPage: 6 },
-->
</body>
</html>