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

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

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

XDEV Software Corp. - One Embarcadero Center, San Francisco, CA 94111, US
Copyright © 2015. XDEV Software Corp. All rights reserved.