Express (Distributed operating systems), v8.0 > Develop and deploying applications > Rapid deployment of J2EE applications > Constructing a J2EE application from artifacts > Dropping J2EE artifacts into a free-form project
Free-form projects
The initial configuration of the free-form project in your workspace creates a free-form project.
Restriction: We can use the rapid deployment tools for packaging applications at J2EE 1.3 or 1.4 specification-levels. However, the rapid deployment tools do not support Java EE 5.0 (or later) nor J2EE 1.2 specification-level. For tools support of deploying Java EE 5 and later modules, you can use the monitored directory starting in WAS V8.0 release. For more details about the monitored directory, see Ways to install enterprise applications or modules and Installing enterprise application files by adding them to a monitored directory topics.
Within the free-form project, you can drop or create J2EE artifacts or fully composed J2EE modules. As artifacts are introduced or modified in the free-form project, the necessary J2EE project structures are dynamically generated in the workspace directory. The J2EE project structures at most contain a Web module project, an EJB module project, an EJB client jar project and a utility Java project; all belonging to a single enterprise application project. From a J2EE development perspective, the free-form project supports a single J2EE application that contains two modules: a web module and an EJB jar module.
The following table lists the naming convention for dynamically generated project folder with its associate project type in a workspace:
where project_name is the string value provided for the -project parameter.
Naming conventions for the project folder Project type project_name The free-form project project_nameApp A single enterprise application project project_nameEJB A single EJB module project project_nameEJBClient A single EJB client jar project project_nameUtility A single utility Java project project_nameWeb A single Web module project The rapid deployment tools configures and update the manifest files and project references to maintain the following default settings:
- The EJB module project has reference and visibility to the EJB client jar project.
- The Web module project has reference and visibility to the EJB client jar project.
- The Web module project, EJB module project, and EJB client jar project has reference and visibility to the Utility Project.
- The enterprise application project contains the Web module project, EJB module project, and EJB client jar project.
- The utility Java project is added as a utility Jar inside the enterprise application project.
- Each of the projects, excluding the enterprise application project, contains an imported_classes directory. The imported_classes folder is set as an exported entry on the classpath of its containing project. As a result, the directory and any contents within it is visible to any projects referencing that project.
The initial configuration of the free-form project creates subdirectories:
- The gen folder is a repository of non-Java artifacts that get generated by the rapid deployment tools.
- The src folder is a subdirectory of the gen folder and is a repository of Java artifacts generated by rapid deployment tools. For example, if you drop an annotated session bean, the remote, home, and local interfaces are generated in src directory.
- The bin directory contains the class files that were compiled for any Java source files dropped into the free-form project.
When Java source files are dropped into a free-form project, they are compiled into this project and the generated class files are copied into the target J2EE project's imported_classes folder. The source files are not copied into any of the J2EE project structures. The deployed application contains only class files.
If a classification of a resource changes from one artifact type to another that results in changes to its target J2EE module project, the old mapped locations are purged. For example, if A.java implemented a servlet, its class files map to the Web module project. If the content of A.java changes to implement an enterprise bean, its class files now map to the EJB module project. The dangling class in the Web project is removed.
Any resources that cannot be classified by rapid deployment tools are mapped to the utility Java project, and their folder structure is preserved as created and dropped into the free-form project. For example, if the following resource exists in the free-form project, /MyFreeForm/data/myproperties.props. This file is mapped to /MyFreeFormUtility/data/myproperties.props, preserving the data folder. In addition, if the class files cannot be classified by rapid deployment as other than a class file, the tool maps these files to the imported classes folder in the utility Java project.
When removing artifacts from the free-form project, the rapid deployment tools remove the artifact from its mapped J2EE project structure location and if applicable, remove the deployment descriptor entries. However, the rapid deployment tools keep any project folders created.
If the free-form project is configured to a local server (on the same machine running the rapid deployment session), the application synchronizes with the server after every change. If the free-form project is configured to a remote server, to limit file transfers over the network for every change, changes are batched together in one minute intervals. A publish is triggered every minute, only when a change occurs.
Dropping J2EE artifacts into a free-form project
Create a free-form project in your workspace
Feedback