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 den Tabellen einer relationalen Datenbank und dienen zur Laufzeit als Daten-Container, die das Abfrageergebnis aufnehmen.
- 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 legen Sie die Java Klassen für Ihre individuelle Anwendungslogik an.
- User Interface - In diesem Bereich legen Sie die Views Ihrer grafischen Oberfläche an. Die Klasse MainView.java ist die erste View, die von RapidClipse standardmäßig angelegt wird.
- 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 Project - Hier werden alle Ihre Projekte angezeigt, als auch der generierte target Ordner, welcher Ihre fertig gebaute Anwendung beinhaltet, oder auch die pom.xml, welche für Maven gebraucht wird
- main-java - Hier können Sie ihren gesamten Quellcode sehen, wie z.B. Entities, Business Klassen, UI Klassen etc.
- main-resources - Hier können Sie die Resourcen sehen, die von dem Application-Server verwendet werden
- main-webapp - Hier können Sie die Resourcen sehen, die vom Client benutzt werden
- test-java - Hier können die Test-Klassen angelegt werden
- test-resourcen - Hier können die Resourcen angelegt werden, die von den Test-Klassen benutzt werden
Hinweis:
- RapidClipse generiert eine Standard-Package-Struktur, Sie können jedoch auch von dieser abweichen und Ihr Projekt mit dem Standard Eclipse Project Explorer komplett selber strukturieren.
...
- 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.
Code Block language java theme Confluence 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.
Code Block language java theme Confluence <?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.
Code Block language java theme Confluence <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.
Code Block language java theme Confluence <?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.main-java
MainLayout.java - Standardmäßig von RapidClipse angelegte View. Die Bezeichnung MainView MainLayout kann jederzeit geändert werden.
ServletAppServlet.java - Vaadin Konfigurations-Datei.
Code Block language java theme Confluence package com.company.example.uidemoproject; import javax.servlet.annotation.WebServlet; import com.vaadinrapidclipse.framework.annotationsserver.VaadinServletConfigurationRapServlet; import com.xdev.communication.XdevServlet; @WebServlet(valueurlPatterns = "/*", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = MainUI.class) public class ServletAppServlet extends XdevServletRapServlet { public ServletAppServlet() { super(); } }
- Projectname - Enthält die für das verwendete Theme benötigten SCSS- und CSS-Dateien.