Project Structure

RapidClipse automatically creates a standard project structure consisting of six main areas (packages). Thus, RapidClipse determines an application architecture that strictly separates different application layers, especially the UI layer, the data storage layer (Entities) and the data query layer (Data Access). 

  • Entities - List of entities created for the project. In Java, entities are the counterpart to the tables in a relational database and at runtime are used as data containers that receive query results.
  • Data Access - List of data access objects created for the project. Usually there is a corresponding Data Access Object (DAO) for each entity that is responsible for the access to the linked data source.
  • Business Objects - In this area, you can create the Java classes for your own application logic.
  • User Interface - In this section, you can create the views for your graphical interface. The MainView.java class is the first view created by RapidClipse by default.
  • Themes - The SCSS files that define the theme of the application are created here.
  • Resources - Here is where all files that the application can access at runtime can be saved, including pictures and voice files for the internationalization of an application.

Note: 
  • Within this standard package you can create additional packages, if required, to structure your project. However, you can also deviate from this standard structure and structure your project completely on your own using the standard Eclipse Project Explorer.

Generated files

  • Projectname
    • JRE System Library - Files of Java Runtime Environment.
    • Maven Dependencies - Required libraries which are automatically downloaded from Maven Repository and included into the RapidClipse project.
    • ehcache.xml - EhCache configuration file. By default, RapidClipse uses EhCache as a second-level cache for Hibernate to grant quicker database access via Hibernate. 
    • log4j.properties - Log4J configuration file. By default, RapidClipse uses Log4J to log application messages. 

      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 configuration file that defines Hibernate as a JPA Provider, amongst others.

      <?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 configuration file. The dependencies the RapidClipse project has to other libraries are specified here.

      <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 -  Configuration file that connects the application to the Servlet container as a web application.

      <?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 - View created by RapidClipse by default.  The name, MainView, can be changed at any time.

    • Servlet.java - Vaadin configuration file.

      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 - Contains the required SCSS and CSS files for the selected theme.

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