Catapult ist ein Java-basiertes Open-Source-Framework für Web-Applikationen, das eine domänengetriebene Entwicklung unterstützt und konsequent REST-Prinzipien umsetzt.
Natürlich soll mit Catapult das sprichwörtliche Rad nicht neu erfunden werden: Es gibt eine Vielzahl von ausgereiften und mächtigen Technologien für die Webentwicklung. Hierbei tut sich vor allem der Quasi-Standard Spring und sein Webframework Spring MVC durch seinen großen Umfang an Funktionen, seiner Flexibiltät und Erweiterbarkeit hervor. Catapult setzt auf Spring auf, rekonfiguriert das Framework und erweitert es vor allem um eigene Funktionen. Damit bietet Catapult die Vorteile eines leichtgewichtigen, verbreiteten und etablierten Frameworks, kombiniert mit neuen domänengetriebenen Erweiterungen.
Catapult kann einfach in einem Maven Projekt eingebunden werden. Zunächst muss das Catapult-Repository der pom.xml hinzugefügt werden.
<repositories>
<repository>
<id>catapult.public</id>
<url>http://nexus.mindmatters.de/content/repositories/catapultframework</url>
</repository>
</repositories>
Anschließend können die Catpult-Abhängigkeiten hinzugefügt werden:
<dependency>
<groupId>org.catapultframework</groupId>
<artifactId>catapult-aspects</artifactId>
<version>${catapult.version}</version>
</dependency>
Der Test-Support ist in einem eigenen Artifakt:
<dependency>
<groupId>org.catapultframework</groupId>
<artifactId>catapult-core</artifactId>
<version>${catapult.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
Die aktuelle Catapult Version ist 0.26:
<properties> <catapult.version>0.26</catapult.version> </properties>
Die Anmeldung in der Web-Anwendung erfolgt über die web.xml:
<servlet>
<servlet-name>catapult</servlet-name>
<servlet-class>org.catapultframework.web.servlet.CatapultServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>catapult</servlet-name>
<url-pattern>/catapult/*</url-pattern>
</servlet-mapping>
Die Catapult-Webapp ist unsere Test-Anwendung in der alle Catapult-Funktionen verwendet werden:
<groupId>org.catapultframework</groupId> <artifactId>catapult-webapp</artifactId>
Zoccer ist ein Tipp-Spiel für die WM und ist eine Catapult-Anwendung: