Home Index Changes Prefs Log in »

Glassfish v3 Workspace Structure

This page contains all information related to the Glassfish v3 workspace structure, and the Maven targets needed to support that structure. It also contains information on how non-java file types will be processed.

glassfish v3 Workspace Under svn

Below is the v3 workspace structure. Check back for updates.

  • v3 trunk
    • admin
      • admin-core
      • cli
      • config-api
      • monitor
      • util
    • api
      • activation
      • deployment-api
      • ejb-api
      • mail
      • persistence-api
      • transaction-api
    • build
      • legal
      • maven-glassfish-plugin
    • common
      • annotation-framework
      • common-util
      • dol
      • glassfish-api
    • core
      • bootstrap
      • kernel
      • shared
    • distributions
      • external
      • gem
      • nucleus
      • nucleus-base
      • pe
      • pe-base
    • extras
      • phobos
      • php
      • rails
    • web
      • appserv-webtier
      • pwc-commons
      • war-util
      • web-connector

Current glassfish Workspace Under cvs

This is the current organization of the glassfish workspace:

  • glassfish
    • activation
    • admin
    • admin-cli
    • admin-cli-ee
    • admin-core
    • admin-core-ee
    • admin-ee
    • dmin-gui
    • admin-gui-ee
    • annotation-framework
    • appserv-addons
    • appserv-api
    • appserv-commons
    • appserv-commons-ee
    • appserv-core
    • appserv-core-ee
    • appserv-docs
    • appserv-docs-ee
    • appserv-http-engine
    • appserv-jstl
    • appserv-native
    • appserv-native-ee
    • appserv-persistence
    • appserv-tests
    • appserv-webtier
    • avk
    • bootstrap
    • cmp
    • common-util
    • config-api
    • config-api-tests
    • connector-api
    • container-auth
    • deployment-api
    • distributions
    • ejb-api
    • entity-persistence
    • entity-persistence-tests
    • external
    • glassfish
    • jacc-api
    • jacc-provider
    • javaee-api
    • jaxr-api
    • jaxr-ri
    • jdbcra
    • jmac-api
    • jmac-provider
    • jms-api
    • jmx-remote
    • jsf-extensions
    • jts
    • legal
    • mail
    • management-api
    • packager-ext
    • persistence-api
    • persistence-impl
    • public
    • pwc-commons
    • repo
    • sailfin-linkage
    • servlet-api
    • tools
    • transaction-api
    • update-center
    • webtier-extensions
    • web-util
    • www

v3 Maven Directory Layout Requirements (Draft)

  • The v3 directory structure should conform to Maven standard directory layout. Background info:
    • At the top level files descriptive of the project: a pom.xml file (and any properties, maven.xml or build.xml if using Ant). In addition, there are textual documents meant for the user to be able to read immediately on receiving the source: README.txt, LICENSE.txt, etc.
    • There are just two subdirectories of this structure: src and target. The only other directories that would be expected here are metadata like CVS or .svn, and any subprojects in a multiproject build (each of which would be laid out as above).
    • The target directory is used to house all output of the build.
    • The src directory contains all of the source material for building the project, its site and so on. It contains a subdirectory for each type: main for the main build artifact, test for the unit test code and resources, site and so on.
    • Within artifact producing source directories (ie. main and test), there is one directory for the language java (under which the normal package hierarchy exists), and one for resources (the structure which is copied to the target classpath given the default resource definition).
    • If there are other contributing sources to the artifact build, they would be under other subdirectories: for example src/main/antlr would contain Antlr grammar definition files.

Directory Layout Table

Directory File Types
module/LICENSE.txtLicense
module/README.txtReadme
module/pom.xmlMaven pom file
module/maven.xmlMaven properties file
module/build.xmlAnt build file
module/src/main/javaJava Application/Library sources
module/src/main/cppc/cpp Application/Library sources[1]
module/src/main/resourcesApplication/Library resources that are added to the jar file's META-INF subdir (e.g. application.properties)
module/src/main/filtersResource filter files that provide build-time property values
module/src/main/assemblyAssembly descriptors that describe assembly formats and dependencies (e.g., app.xml)
module/src/main/configConfiguration files. (e.g., application.xml describing services bundled into an app)
module/src/main/webappWeb application sources
module/src/main/webapp/WEB-INF/jspJSP files
module/src/main/webapp/cssCSS files
module/src/main/webapp/imagesImage files
module/src/main/webapp/jsJavascript files
module/src/test/javaJava Test sources
module/src/test/cppc/cpp Test sources[1]
module/src/test/resourcesTest resources
module/src/test/filtersTest resource filter files
module/src/site Site: Documentation + extra resources (css, image, etc)
module/src/site/site.xmlSite descriptor
module/src/site/aptAlmost Plan Text(APT). wiki-like format that allows you to write simple, structured documents.
module/src/site/fmlFML format is the FAQ format]
module/src/site/xdocXDoc format
module/src/site/fri18n'ed docs in fr locale
module/targetHouses all build output
[1] Additional file type not described by Maven standard directory layout.
  • Non-java file types must be handled by Maven targets. These types include:
    • .xml
    • .html
    • .c
    • .properties
    • .js
    • .gif (+ other image file types)
  • Multiple, hierarchical modules must be handled by Maven targets.

Task Plan (Draft)

  1. Review Maven standard directory layout.
  2. Review existing Maven projects for examples of how different file types are managed.
  3. Select a glassfish module on which to start. Current plan is to choose glassfish/activation.
  4. Modify directory structure in a workspace. Current plan is to use cvs GF_V3_PREWORK_BRANCH.
  5. Modify Maven targets to support new layout.
  6. Modify Maven targets to process non-java files.
  7. Review changes with stakeholders.
  8. Start QA test cycle
    1. Make edits as needed.
    2. Commit changes to target module.
    3. Run smoke tests on target module.
    4. Repeat cycle, if needed.
  9. Apply same pattern to all glassfish modules.
  10. Add pom.xml to glassfish directory

Task Breakdown (Draft)

  • Determine modules that have non-java files
    • activation
      • xml
    • admin
      • html
      • xml
    • admin-cli
      • html
      • xml
    • admin-core
      • html
      • xml
    • admin-core
      • xml
    • admin-ee
      • xml
    • admin-gui
      • html
      • js
      • css
      • gif
      • jpg
      • xml
    • admin-gui/admin-jsf
      • xml
    • admin-gui-ee
      • html
      • css
      • gif
    • annotation-framework
      • xml
    • appserv-addons
      • xml
    • appserv-api
      • html
    • appserv-commons
      • html
    • appserv-core
      • html
      • xml
    • appserv-core-ee
      • xml
    • appserv-docs
      • html
      • css
      • gif
      • xml
    • appserv-docs-ee
      • html
      • gif
      • jpg
      • xml
    • appserv-http-engine
      • html
      • css
      • js
      • gif
      • png
      • jpg
      • xml
    • appserv-jstl
      • html
      • css
      • gif
      • xml
    • appserv-native
      • xml
    • appserv-native-ee
      • xml
    • appserv-persistence
      • xml
    • appserv-webtier
      • html
      • xml
    • avk
      • html
      • css
      • gif
      • xml
    • bootstrap
      • xml
    • cmp
      • xml
    • common-util
      • xml
    • connector-api
      • html
      • xml
    • deployment-api
      • html
      • xml
    • ejb-api
      • html
      • xml
    • jacc-api
      • html
      • xml
    • jacc-api-provider
      • xml
    • jaxr-api
      • html
      • xml
    • jaxr-ri
      • html
      • xml
    • jdbcra
      • xml
    • jmac-api
      • html
      • xml
    • jmx-remote
      • html
      • xml
    • jms-api
      • html
    • jsf-extensions
      • js
      • html
      • xml
      • gif (+ other image file types)
      • css
    • jts
      • xml
    • mail
      • html
      • xml
    • management-api
      • html
      • xml
    • packager-ext
      • html
      • gif
      • xml
    • persistence-api
      • html
      • xml
    • persistence-impl
      • html
      • jpg
      • xml
    • pwc-commons
      • xml
    • servlet-api
      • html
      • gif
      • jpg
      • xml
    • tools
      • html
      • gif
      • xml
    • transaction-api
      • html
      • xml
    • update-center
      • xml
    • webtier-extensions
      • xml

Questions

  • Are there any dependencies between html files located in each of the modules?

Feedback

Please add feedback here:

  • Comment:

« Home Attachments Info Index Changes Prefs
This page (revision-8) was last changed on 08-Nov-07 11:33 AM, -0800 by PaulSterk