<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../wtp.xsl"?>
<html>
	<head>
		<meta name="root" content="../../../../../.." />
		<title>test plan: wtp project explorer.</title>
	</head>
	
	<body>
		<h1>wst common</h1>
		<h2>Importing modules</h2>
		<P>There are two ways to access the list of all the available import
		wizards from the Project Explorer:
		</P>		
		<ol>
			<li>File->Import...
				
			</li>
			<br/>
			<br/>
			<TABLE cellspacing="10" cellpadding="10">
				<TR>
					<TD>
					<P><IMG src="images/notesbuddy3532_30400.jpg"/></P>
					</TD>
				</TR>
				<TR>
					<TD>
					<P><I>Figure 1: Select "Import" from the Workbench "File" menu.</I></P>
					</TD>
				</TR>
			</TABLE>
		
			<li>Right click in Project Explorer and select:
			Import...-&gt;Import... on a selection or just Import... on
			whitespace.
			</li>			
			<TABLE cellspacing="10" cellpadding="10">
				<TR>
					<TD>
					<P><IMG src="images/notesbuddy3532_30688.jpg"/></P>
					</TD>
				</TR>
				<TR>
					<TD>
					<P><I>Figure 2: Right-click on the open space in the Project
					Explorer and select "Import...".</I></P>
					</TD>
				</TR>
			</TABLE>			
		</ol>
		
		<h2>J2EE Import</h2>	
		<p>
		The Project Explorer in the J2EE Perspective provides additional import support for J2EE artifacts.
		The J2EE groups, as show below, each have a menu item to import the specific type of J2EE module
		or application for the selected J2EE group.
		</p>	
		<TABLE cellspacing="10" cellpadding="10">
			<TR>
				<TD>
				<P><IMG src="images/notesbuddy3532_31145.jpg"/></P>
				</TD>
			</TR>
			<TR>
				<TD>
				<P><I>Figure 3: Select "Import" from the Module Group of your choice
				in the Project Explorer.</I></P>
				</TD>
			</TR>
		</TABLE>		
		<UL>
			<LI>
			<P>Right-click on the Enterprise Applications group, select
			Import...-&gt;EAR File.</P>
			</LI>
			<LI>
			<P>Right-click on the Application Client Projects group, select
			Import...-&gt;App Client JAR File.</P>
			</LI>
			<LI>
			<P>Right-click on the Connector Projects group, select
			Import...-&gt;RAR File.</P>
			</LI>
			<LI>
			<P>Right-click on the EJB Projects group, select Import...-&gt;EJB
			JAR File.</P>
			</LI>
			<LI>
			<P>Right-click on the Dynamic Web Projects group, select
			Import...-&gt;WAR File.</P>
			</LI>
		</UL>		
		<H4>WAR Import</H4>
		<TABLE cellspacing="10" cellpadding="10">
			<TR>
				<TD>
				<P><IMG src="images/notesbuddy3532_21487.jpg"/></P>
				</TD>
			</TR>
			<TR>
				<TD>
				<P><I>Figure 4: </I>The Import Wizard allows you to choose the *.war
				file you would like to import, and choose the project where it
				should be extracted.</P>
				</TD>
			</TR>
		</TABLE>		
		<OL>
			<LI>
			<P>Select the &quot;Browse&quot; button to navigate to an existing
			WAR file on the file system.</P>
			</LI>
			<LI>
			<P>Ensure a J2EE Runtime Library is selected as the target server.</P>
			</LI>
			<LI>
			<P>Click to add tht module to an EAR project.</P>
			</LI>
			<LI>
			<P>Hit finish.</P>
			</LI>
		</OL>		
		<H4>Import using drag and drop</H4>
		<P>Alternatively, the J2EE Project Explorer also supports import via a
		drag and drop from the file system onto the appropriate J2EE project
		group.</P>
		<TABLE cellspacing="10" cellpadding="10">
			<TR>
				<TD>
				<P><IMG src="images/notesbuddy3532_31321.jpg"/></P>
				</TD>
			</TR>
			<TR>
				<TD>
				<P><I>Figure 5: </I>A selection dialog allows you to choose the
				action to perform on the Drag and Drop if there are multiple
				options. Hit OK.</P>
				</TD>
			</TR>
		</TABLE>
		<UL>
			<LI>
			<P>Drag and drop an EAR file onto the Enterprise Applications group.</P>
			</LI>
			<LI>
			<P>Drag and drop an application client JAR file onto the Application
			Client Projects group.</P>
			</LI>
			<LI>
			<P>Drag and drop a RAR file onto the Connector Projects group.</P>
			</LI>
			<LI>
			<P>Drag and drop an EJB JAR file onto the EJB Projects group.</P>
			</LI>
			<LI>
			<P>Drag and drop a WAR file onto the Dynamic Web Projects group.</P>
			</LI>
		</UL>
		<p>Return to <A HREF="px_overview.html">overview</A>.</p>		
	</body>
</html>		
