Taylor

Project Anatomy

From Taylor

This page outlines the structure of the projects/modules generated from a model.

  • Maven project layout conventions are used, so you will find files were you expect to.
  • The model name is used as the groupId and artifactId, unless overridden by the maven stereotype.
  • All the necessary dependencies are generated.
  • POM files are not regenerated if it already exists. So you can and are expected modify these files. Many sections are commented out so that you can decide what additional features to activate.

Contents

Master

This is the master project for all the other modules.

  • pom.xml

NOTE: This is now the root project folder instead of a sibling.

Jpa

This project contains JPA entities that can be used across many projects.

  • pom.xml
    • src
    • src
      • test
        • java
          • Entity Bean Tests
        • resources
          • META-INF
          • ejb3-deployment.xml
          • ejb3-interceptors-aop.xml
          • embedded-jboss-beans.xml
          • jboss-jms-beans.xml
          • security-beans.xml
          • login-config.xml
          • roles.properties
          • users.properties
          • default.persistence.properties
          • jndi.properties
          • log4j.xml
          • import.sql

Ejb

This project contains services, business processes and task actions.

  • pom.xml
    • src
      • main
        • java
        • resources
          • META-INF
            • components.xml
            • ejb-jar.xml
          • seam.properties
          • <task-name>-<action>-email.xhtml, <task-name>-email.xhtml - task email templates
          • TODO jax-ws descriptors
    • src
      • test
        • java
          • Service and Process Unit Tests
        • resources
          • META-INF
            • components.xml
          • embedded container descriptors (see jpa above)

Jsf

This project contains the Seam components and Facelets for the Crud UI and Pageflows.

  • pom.xml
    • src
      • main
        • java
          • <crud>
            • *Editor.java
            • *EditorBean.java
            • *Finder.java
            • *FinderBean.java
            • *TreeNode.java
          • <page-flow>
            • *PageBean.java
        • resources
          • META-INF
            • components.xml
            • ejb-jar.xml
            • faces-config.xml
            • pages.xml
          • seam.properties
          • <prj-name>-messages.properties
          • <prj-name>-rules.properties
          • jsf
            • <crud>
              • Search.xhtml
              • View.xhtml
              • Edit.xhtml
              • Charts.xhtml
              • ViewPanel.xhtml
              • EditPanel.xhtml
              • Columns.xhtml
              • Headers.xhtml
              • SortHeaders.xhtml
              • ViewKeys.xhtml
            • <page-flow>
              • Pageflow.xhtml
              • <page-name>.xhtml
          • pdf
            • <entity-name>.xhtml
            • <entity-name>List.xhtml
            • DetailCells.xhtml
            • ListCellHeaders.xhtml
            • ListCells.xhtml
          • xsl
            • Excel.xhtml - TODO <entity-name>.xhtml
            • Cells.xhtml
    • src
      • test
        • java
          • Editor and Finder Unit Tests
        • resources
          • META-INF
            • components.xml
          • embedded container descriptors (see jpa above)

NOTE: see Taylor Portal for more on the portal-plug-in architecture used by the JSF projects

Web

This project packages the War with the templates, tags, and themes.

  • pom.xml
    • src
      • main
        • webapp
          • index.html
          • home.xhtml
          • dashboard.xhtml
          • login.xhtml
          • error.xhtml
          • themes
            • default
              • *-template.xhtml
              • includes
                • *.xhtml
              • css
                • *.css
              • images
                • *.gif
                • *.png
                • *.jpeg
          • WEB-INF
            • web.xml
            • faces-config.xml - master
            • pages.xml - master
            • components.xml - master
            • navigation.xml
            • classes
              • messages.properties - master
              • application.properties
              • rules.properties
              • default.properties - theme descriptor
              • <theme>.properties - theme descriptor
              • portal.skin.properties - richfaces skin
            • excel - TODO change to xsl?
              • tags
              • templates
            • jsf
              • tags - TODO list tags
              • templates
            • pdf
              • tags
              • templates
        • webresources
          • themes
            • default
              • layout-template.xhtml

Most of this content is overlayed from taylor-portal-web. However, you can override any file by defining it in your project and create entire new theme.

	<dependency>
		<groupId>taylor</groupId>
		<artifactId>taylor-portal-web</artifactId>
		<version>${taylor.version}</version>
		<type>war</type>
		<scope>runtime</scope>
	</dependency>

App

This project packages the modules into an Ear.

  • pom.xml
  • src
    • main
      • application
        • META-INF
          • jboss-app.xml
      • resources
        • META-INF
          • application.xml - TODO have maven generate?
        • components.properties

These Taylor modules are also included:

  • taylor-commons
  • taylor-portal
  • taylor-identity
  • taylor-bpm
  • taylor-audit
  • taylor-search

TODO - discuss customizing the ear and the deployment cycle

Jax-WS Client

This project contains that web service client for web services defined in the model.

  • pom.xml
  • components.properties

Qa

This project contains the JSFUnit and Taylor Results based integration tests.

  • pom.xml

Doc

This project contains Maven APT-based documentation of the model.

  • pom.xml

See Generating Documentation