Project Folder Structure

A Cúram web client application project is organized into a folder structure that is recognized by the Cúram CDEJ when the application is built. Project Folder Structure, shows an outline of this folder structure for the project and the list that follows describes each folder within this structure in more detail. The base folder of this structure is the <client-dir> folder.

Figure 1. Web Client Folder Structure
<client-dir>
  + build
    + bean-doc
  + buildlogs
  + components
    + core
    + <custom>
      + Images
      + javasource
      + WebContent
  + JavaSource
  + project
  + WebContent
    + <locale>
    + Previews
    + WEB-INF
build
Temporary generated artifacts. The only contents of interest are the generated reference documentation for the façade server interfaces.
build/bean-doc
Generated reference documentation for the façade server interfaces in HTML format. These are regenerated each time the application model changes. See Server Interface Reference for more details.
buildlogs
Log files generated from each build. See Build Logs for more details.
components
The top-level folder for the application components. Each sub-folder of this folder contains a separate application component. See Application Components for more information on application components.
components/core
The pre-defined core Cúram application component artifacts that provide the core functionality. These artifacts should not be modified directly. To change them, you should create new artifacts in another component which will then override the core artifacts.
components/<custom>
One or more extra application components containing artifacts that add additional application functionality or customize existing functionality.
components/<custom>/Images
Arbitrary custom resources that you want to deploy with your application. Files and folders within this folder will be copied to the top-level WebContent folder during the build process.
components/<custom>/javasource
Javasource code and properties files used to add extra functionality to an application or to define externalized strings used across many application pages. There are a number of different customizations that can be applied to files within this directory. These include updates to control one or more of the data conversion or sorting operations. Please refer to Custom Data Conversion and Sorting for more details on these customizations. This javasource directory is optional, however if this directory is added, the webclient/.classpath file must be updated to reference this new source directory. This ensures that the changes in this directory are recompiled when a client build is run within the specified development environment. The following is an entry in the webclient/.classpath file, (where <custom> represents the name of a custom directory):
<classpathentry kind="src" path="components/<custom>/javasource"/>
components/<custom>/WebContent
Arbitrary custom resources that you want to deploy with your application. Files and folders within this folder will be copied to the top-level WebContent folder during the build process.
JavaSource
Contains the Initial_ApplicationConfiguration.properties file, that is described in Configuring the Application.
project
Configuration files used when customizing the application deployment descriptors. See Customizing the Web Application Descriptor for more details.
WebContent
The generated web application files. This contains the generated JSP files and other application artifacts that can be used to start and test an application in the development environment. When an application is to be deployed outside of the development environment, many of the files in this folder are packaged in the application EAR file. See Deployment for more details.
WebContent/<locale>
The generated JSP files for each locale supported by the application are placed in folders named after the locales. For example, for American English pages there will be a folder named en_US. These JSP files are generated as necessary when the application is built, so they will be replaced automatically if deleted or out of date with respect to the corresponding UIM file. The JSP files are placed in sub-folders of the locale folder using the first two letters of the page ID as the sub-folder name. This reduces the likelihood that an option provided by some application server software to pre-compile the JSP files will fail when trying to pre-compile too many JSP files at the same time.
WebContent/Previews
Generated HTML files providing a rough preview of what each corresponding JSP will look like when the application is running. These previews can be viewed directly in a web browser without running the application. See Page Previews for more information.
WebContent/WEB-INF
The standard folder which must exist in every Java EE web application. No files in this folder will be served by the web container, the files are only used internally by the web client application. It contains a classes folder that contains all the compiled Java class files and properties files required by the application. In a Cúram web application project, this includes the classes and properties files from the component specific javasource folders and the properties file from the <client-dir>/JavaSource directory. It also contains a lib folder that contains all required library classes packaged in JAR files. The CDEJ supplies all the JAR files required for this folder and they are copied during the build process. You should not modify any files in this folder.

In addition to the web client folders, there are a number of folders in the <server-dir> project that are relevant to web client application development. The <server-dir> project maintains a similar structure to the web client, specifically in relation to the component folder.

components/<component-name>/clientapps
Application configuration artifacts. These are the XML configuration files for defining applications, sections, tabs, etc. For more information see Application Configuration.
components/<component-name>/tab
Application configuration artifacts pre-defined in the Cúram application. XML configuration files shipped with the core and other out-of-the-box components will exist in this folder. These should not be modified. To change these you should create new artifacts in the clientapps folder in another component, which will then override these artifacts.