blob: 09564bede43a4fda4d9cbc20b4aaf9ebfb8fea03 [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link type="text/css" href="../../../../../default_style.css" rel="stylesheet">
<link type="text/css" href="../../../../../webtools/wtp.css" rel="stylesheet">
<title>J2EE Headless Samples</title>
</head>
<body>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<tbody>
<tr>
<td align="left" width="60%"><font class="indextop">jst j2ee</font>
<br>
<font class="indexsub">J2EE Headless Samples</font></td><td width="40%"><img src="../../../../../webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207"></td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<col width="16">
<col width="*">
<tbody>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top"><b>By:</b></td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
Neeraj Agrawal (nagrawal@us.ibm.com) <br>
</p>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Introduction</font></b></td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
This document provides sample code for WTP 1.5.x which can be used in headless mode.
Please note that the API's are internal and subject to change in future releases.
</p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Samples</font></b></td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ul>
<li>
<b>Creating a Web Project</b>
<pre>
String projectName = "FooWeb2";
IDataModel model = DataModelFactory
.createDataModel(new WebFacetProjectCreationDataModelProvider());
model.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projectName);
//optional, setting user defined location
model.setBooleanProperty(IProjectCreationPropertiesNew.USE_DEFAULT_LOCATION, false);
model.setProperty(IProjectCreationPropertiesNew.USER_DEFINED_LOCATION, "d:\\FooDir");
//end, optional location
FacetDataModelMap map = (FacetDataModelMap) model
.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel webmodel = (IDataModel) map.get(IModuleConstants.JST_WEB_MODULE);
//optional, set the property if you want to add the project to the EAR
webmodel.setBooleanProperty(IJ2EEModuleFacetInstallDataModelProperties.ADD_TO_EAR, true);
//optional, set the property if you want to set the server in the project
Set runtimes = RuntimeManager.getRuntimes();
model.setProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME,
runtimes.toArray()[0]);
try {
model.getDefaultOperation().execute( new NullProgressMonitor(), null);
} catch (ExecutionException e) {
e.printStackTrace();
}
</pre>
</li>
<li>
<b>Creating Ejb, Connector, AppClient or Utility project</b>
<br>
<br>
The code would be same as creating a web project, but for <br>
<br>
Ejb: use EjbFacetProjectCreationDataModelProvider and IModuleConstants.JST_EJB_MODULE<br>
<br>
Connector: use ConnectorFacetProjectCreationDataModelProvider and IModuleConstants.JST_CONNECTOR_MODULE<br>
<br>
AppClient: use AppClientFacetProjectCreationDataModelProvider and IModuleConstants.JST_APPCLIENT_MODULE<br>
<br>
Utility: use UtilityFacetInstallDataModelProvider and IModuleConstants.JST_UTILITY_MODULE<br>
<br>
</li>
<br>
<li>
<b>Creating an EAR project </b>
<br>
<pre>
IDataModel model = DataModelFactory.createDataModel(new EarFacetInstallDataModelProvider());
model.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, "FooEAR");
try {
model.getDefaultOperation().execute( new NullProgressMonitor(), null);
} catch (ExecutionException e) {
e.printStackTrace();
}
</pre>
</li>
<li>
<b>Migrating Java project to facet based utility project </b>
<br>
<pre>
IDataModel migrationdm = DataModelFactory.createDataModel(new JavaProjectMigrationDataModelProvider());
migrationdm.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME, "FooJava");
try {
migrationdm.getDefaultOperation().execute(new NullProgressMonitor(), null);
} catch (ExecutionException e) {
e.printStackTrace();
}
</pre>
</li>
<li>
<b> Getting faceted project from IProject</b>
<br>
<pre>
IProject project = ...;
IFacetedProject facetedProject = null;
try {
facetedProject = ProjectFacetsManager.create(project);
} catch (CoreException e) {
//not a faceted project
}
</pre>
</li>
<li>
<b>Getting list of servers in the workbench supporting facets in a project</b>
<br>
<pre>
IFacetedProject facetedProject = ...;
Set projectFacets = facetedproject.getProjectFacets();
Set runtimes = RuntimeManager.getRuntimes();
Set supportedRuntimes = new HashSet();
for (Iterator it = runtimes.iterator(); it.hasNext();) {
IRuntime rt = (IRuntime) it.next();
boolean supportsFactet = true;
for (Iterator facetIt = projectFacets.iterator(); facetIt.hasNext();) {
IProjectFacetVersion facet = (IProjectFacetVersion) facetIt.next();
if (!rt.supports(facet)) {
supportsFactet = false;
break;
}
}
if (supportsFactet) {
supportedRuntimes.add(rt);
}
}
</pre>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</body>
</html>