RapidClipse erzeugt automatisch eine Standard-Projektstruktur bestehend aus den 6 Hauptbereichen (Packages)
Projects - Liste der angelegten Projekte. Hier lassen sich beliebig viele RapidClipse Projekte anlegen.
- Entities - Liste der für das Projekt angelegten Entities. Die Bezeichnung des Entities muss eindeutig sein. Entities lassen sich auch in Packages gruppieren. In unterschiedlichen Packages ist die Verwendung von Entities mit derselben Bezeichnung jedoch möglich und unproblematisch, da diese über den Packagenamen eindeutig angesprochen werden können.
- Data Access - Liste der für das Projekt angelegten Data Access Objekte, bzw. Klassen. 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 Anlegen von Oberflächen (Views).
- 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:
...
. 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).
- 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 z.B. Icons welche im Java Code verwendet werden, Sprachdateien
- main-webapp - Hier können Sie die Resourcen sehen, die vom Client benutzt werden z.B. Icons, Bilder welche in CSS verwendet werden, CSS Code
- 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
- MainViewmain-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.rapidclipse.vaadinframework.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.