Project structure

RapidClipse automatically generates a standard project structure consisting of the 6 main areas (packages). Thus, RapidClipse provides an application architecture that strictly separates different application layers, in particular the UI layer, the data storage layer (Entities), and the data query layer (Data Access).

  • Project - Here you can see all your projects, as well as the generated target folder, which contains your built application, or the pom.xml, which is needed for Maven.

  • main-java - Here you can see all your source code, such as entities, business classes, UI classes etc.

  • main-resources - Here you can see the resources used by the application server, e.g. icons used in the Java code, language files.

  • main-webapp - Here you can see the resources used by the client e.g. icons, images used in CSS, CSS code

  • test-java - Here the test classes can be created

  • test-resources - Here you can create the resources that will be used by the test classes.

Note:

  • RapidClipse generates a default package structure, but you can also deviate from this and structure your project completely yourself using the standard Eclipse Project Explorer.

Generated files

  • *Project name

    • JRE System Library - files of the Java Runtime Environment.

    • Maven Dependencies - Required libraries that are automatically downloaded from the Maven repository and included in the RapidClipse project.

    • ehcache.xml - EhCache configuration file. RapidClipse uses EhCache as second-level cache for Hibernate by default to accelerate database accesses via Hibernate.

    • *persistence.xml - JPA configuration file, which among other things defines Hibernate as JPA provider.

      <?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. Here dependencies are specified that the RapidClipse project has to other libraries.

      <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 is included in the servlet container as a web application via the 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>
  • *main-java

    • MainLayout.java - Default layout created by RapidClipse. View. The designation MainLayout can be changed at any time.

    • AppServlet.java - Vaadin configuration file.

      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();
          }
      }