RapidClipse erzeugt automatisch eine Standard-Projektstruktur bestehend aus den 6 Hauptbereichen (Packages). Dadurch gibt RapidClipse eine Anwendungsarchitektur vor, die eine strikte Trennung unterschiedlicher Anwendungsschichten vorsieht, insbesondere der UI-Schicht, der Datenhaltungs-Schicht (Entities) sowie der Datenabfrage-Schicht (Data Access).
- Entities - Liste der für das Projekt angelegten Entities. Entities sind in Java das Pendant zu Ihren Datenbanktabellen und dienen zur Laufzeit als Daten-Container, die Abfrageergebnisse aufnehmen können.
- Data Access - Liste der für das Projekt angelegten Data Access Objekte. Für jedes Entity existiert i.d.R. ein entsprechendes Data Access Objekt (DAO), das für den Zugriff auf die angebundene Datenquelle zuständig ist.
- Business Objects - In diesem Bereich implementieren Sie Ihre individuelle Anwendungslogik.
- User Interface - Bereich für das Verwalten der Views Ihrer grafischen Oberfläche.
- Themes - Hier werden die SCSS-Dateien angelegt, mit denen das Theme der Anwendung definiert wird.
- Resources - Hier können sämtliche Dateien gespeichert werden, auf die die Anwendung zur Laufzeit zugreifen kann, u.a. Bilder und Sprachdateien für die Internationalisierung einer Anwendung.
Hinweis:
- Innerhalb dieser Standard-Packes können Sie bei Bedarf weitere Packages anlegen um Ihr Projekt zu strukturieren. Sie können jedoch auch von dieser Standard-Struktur abweichen und Ihr Projekt mit dem Standard Eclipse Project Explorer komplett selber strukturieren.
Generierte Dateien
- Projectname
- JRE System Library - Dateien der Java Runtime Environment.
- Maven Dependencies - Benötigte Bibliotheken, die automatisch vom Maven Repository heruntergeladen und in das RapidClipse Projekt eingebunden werden.
- ehcache.xml - EhCache Konfigurations-Datei. RapidClipse verwendet EhCache standardmäßig als Second-Level Cache für Hibernate, um Datenbankzugriffe via Hibernate zu beschleunigen.
log4j.properties - Log4J Konfigurations-Datei. RapidClipse verwendet Log4J wird standardmäßig zum Loggen von Anwendungsmeldungen.
log4j.rootLogger=INFO, stdout log4j.logger.deng=INFO log4j.logger.net.sf.ehcache=DEBUG log4j.logger.net.sf.ehcache.config=DEBUG log4j.logger.net.sf.ehcache.distribution=DEBUG log4j.logger.net.sf.ehcache.code=DEBUG log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.ImmediateFlush=true log4j.appender.stdout.Threshold=debug log4j.appender.stdout.Append=true log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.conversionPattern=%m%n
persistence.xml - JPA Konfigurations-Datei, welche u.a. Hibernate als JPA Provider festlegt.
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="examples"> <provider> org.hibernate.jpa.HibernatePersistenceProvider </provider> <class>com.company.examples.entities.Automaker</class> <class>com.company.examples.entities.Carmodel</class> <class>com.company.examples.entities.Extra</class> <class>com.company.examples.entities.Car</class> <properties> <property name="hibernate.cache.use_second_level_cache" value="true" /> <property name="hibernate.cache.use_query_cache" value="true" /> <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory" /> <property name="javax.persistence.sharedCache.mode" value="DISABLE_SELECTIVE" /> <property name="hibernate.archive.autodetection" value="class, hbm" /> <property name="hibernate.show_sql" value="false" /> <property name="hibernate.hbm2ddl.auto" value="validate" /> <property name="hibernate.transaction.auto_close_session" value="false" /> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost:5435/northwind;IFEXISTS=TRUE" /> <property name="javax.persistence.jdbc.user" value="sa" /> <property name="javax.persistence.jdbc.password" value="" /> </properties> </persistence-unit> </persistence>
pom.xml - Maven Konfigurations-Datei. Hier werden Abhängigkeiten angegeben, die das RapidClipse Projekt zu anderen Bibliotheken hat.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.company</groupId> <artifactId>ecample</artifactId> <packaging>war</packaging> <name>Ecample</name> <version>0.1.0-SNAPSHOT</version> <build> <resources> <resource> <directory>src</directory> <excludes> <exclude>**/*.java</exclude> <exclude>**/*.ui.xml</exclude> </excludes> </resource> </resources> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>${project.name}</warName> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>vaadin-addons</id> <url>http://maven.vaadin.com/vaadin-addons</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.xdev-software</groupId> <artifactId>xdev-server-core</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>com.xdev-software</groupId> <artifactId>xdev-server-ui</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>com.xdev-software</groupId> <artifactId>xdev-server-aa</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>com.xdev-software</groupId> <artifactId>xdev-server-aa-ui</artifactId> <version>1.2.0</version> </dependency> </dependencies> <properties> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> </properties> </project>
web.xml - Konfigurations-Datei über die die Anwendung in den Servlet-Container als Web-Applikation eigebunden wird.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Ecample</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
- User Interface
MainView.java - Standardmäßig von RapidClipse angelegte View. Die Bezeichnung MainView kann jederzeit geändert werden.
Servlet.java - Vaadin Konfigurations-Datei.
package com.company.example.ui; import javax.servlet.annotation.WebServlet; import com.vaadin.annotations.VaadinServletConfiguration; import com.xdev.communication.XdevServlet; @WebServlet(value = "/*", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = MainUI.class) public class Servlet extends XdevServlet { public Servlet() { super(); } }
- Themes
- Projectname - Enthält die für das verwendete Theme benötigten SCSS- und CSS-Dateien.
- Projectname - Enthält die für das verwendete Theme benötigten SCSS- und CSS-Dateien.