<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><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" alt="WTP Logo" usemap="logomap"><map id="logomap" name="logomap"><area coords="0,0,207,129" href="/webtools/" alt="WTP Home"></map></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"> | |
| |
</td><td valign="top"><b>By:</b></td></tr><tr><td align="right" valign="top"> | |
| |
</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"> | |
| |
</td><td valign="top"><br></td></tr><tr><td align="right" valign="top"> | |
| |
</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"> | |
| |
</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"> | |
| |
</td><td valign="top"><br></td></tr><tr><td align="right" valign="top"> | |
| |
</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> |