Projekt-Struktur

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). 

  • 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.

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. 
    • 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>
  • main-java
    • MainLayout.java - Standardmäßig von RapidClipse angelegte View. Die Bezeichnung MainLayout kann jederzeit geändert werden.

    • AppServlet.java - Vaadin Konfigurations-Datei.

      package com.company.demoproject;
      
      import javax.servlet.annotation.WebServlet;
      
      import com.rapidclipse.framework.server.RapServlet;
      
      
      @WebServlet(urlPatterns = "/*", asyncSupported = true)
      public class AppServlet extends RapServlet
      {
      	public AppServlet()
      	{
      		super();
      	}
      }