| <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"> </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> |