<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../webtools/wtp.xsl"?>
<html>
	<head>
		<meta
			name="root"
			content="../../../../.." />
		<title>overview</title>
	</head>

	<body>
		<h1>jst j2ee component</h1>
		<h2>Functional Overview</h2>
		<p>
			This section provides a functional overview of the J2EE compoenent in the
			JST subproject.

			<h4>J2EE Module Creation</h4>
			Module creation wizards, operations and the data models that drive the
			operations are used to create J2EE projects. The project creation wizards
			can be launched using the File > New > Project menu action. The J2EE
			projects include Enterprise Application, Web, Application Client,
			Enterprise Java Bean and Connector projects. These J2EE projects can be
			created for J2EE specification level 1.2, 1.3 and 1.4 and targeting to a
			J2EE specification compatible application server. A J2EE runtime target
			(target server) should be predefined for project creation. The runtime
			targets are a mechanism to set the JRE and Server classpath on a J2EE
			project for compile time. The J2EE module projects Web, Application
			Client, Enterprise JavaBean and Connector projects can be created as
			standalone or can be nested under a new or existing Enterprise
			Application project. The api that are available to create the J2EE
			projects are discussed in the Api Overview section.

			<h4>J2EE Archive Import</h4>
			Import wizards and operations and data models that drive the operations
			are used to import J2EE archives (ear, war,jar.rar) into the workbench.
			The import wizards can launched using the File > Import menu action. The
			J2EE archives can be imported into new or existing J2EE projects. For new
			projects, a runtime target (target server) must be predefined. When
			importing into an existing project, the user has the option to overwrite
			the contents of the project with that of the archive and also delete the
			project and create and new one. The Enterprise Application wizard has
			more options to import modules nested in a EAR file. The api that are
			available to import J2EE archives are discussed in the Api Overview
			section.

			<h4>J2EE Module Export</h4>
			Export wizards , operations and data models that drive the operations are
			used to export J2EE projects into deployable archives (ear, war, jar,
			rar). The export wizards can be launched using File > Export menu action.
			The export wizards have the option to include Java source also using
			export of the J2EE projects. The export of an Enterprise Application
			project also exports all the associated modules into the ear that can be
			deployed to a J2EE application server.

			<h4>Project Explorer</h4>
			The Project Explorer provides a single, consistent view that allows users
			to explore rich levels of content. Physical and logical content is
			integrated seamlessly to allow users to browse Eclipse resources, Java
			packages and classes, navigable models of configuration information,
			Databases, Database Servers and Web Services among other enhanced
			content. Modules may also be grouped by type for improved usability.
			Third parties may extend the Project Explorer to provide their own
			customized content without significant modifications to their existing
			tree providers. The Project Explorer view is defined under "Show View >
			J2EE > Project Explorer"

		</p>


		<h2>Subcomponent and plugin dependencies</h2>
		<p>
			The J2EE component is comprised of
			<i>jst.common</i>
			,
			<i>jst.j2ee</i>
			,
			<i>jst.servlet</i>
			,
			<i>jst.ejb</i>
			, and
			<i>jst.web</i>
			subcomponents. The following diagram visualizes the dependencies among
			these components, and the relevant WST subcomponent dependencies.
		</p>
		<table
			cellspacing="10"
			cellpadding="10">
			<tr>
				<td>
					<p>
						<img src="diagrams/j2ee_subcomponent_dependencies.jpg" />
					</p>
				</td>
			</tr>
			<tr>
				<td>
					<p>
						<i>
							Figure 1: Component dependencies relevant to the J2EE
							component
						</i>
					</p>
				</td>
			</tr>
		</table>
		<p>
			Within the J2EE component, the
			<i>org.eclipse.jst.j2ee.core</i>
			plugin defines the EMF metamodels that are used to work with J2EE
			artifact deployment descriptors. Each J2EE plugin builds on top of these.
			Each logical type of artifact has one plugin each for non-UI and UI
			functionality. The non-UI component generally contains Operations and
			Edit Models among other things. The UI component generally contains
			Wizards, Wizard Pages, and possibly Editor or Editor Pages. Two plugins
			are outside of this pattern:
			<i>org.eclipse.jst.j2ee.migration.ui</i>
			and
			<i>org.eclipse.jst.j2ee.navigator.ui</i>
			which provide functionality that crosses all module types. Future
			iterations on the design could result in breaking these into separate,
			module-type specific contributions.
		</p>
		<table
			cellspacing="10"
			cellpadding="10">
			<tr>
				<td>
					<p>
						<img src="diagrams/j2ee_plugin_dependencies.jpg" />
					</p>
				</td>
			</tr>
			<tr>
				<td>
					<p>
						<i>
							Figure 2: Plugin dependencies within the J2EE component
						</i>
					</p>
				</td>
			</tr>
		</table>
	</body>
</html>
