@Override protected void createDeploymentFiles(IProject project, final IProgressMonitor monitor) { final IVirtualComponent component = ComponentCore.createComponent(project); final IModelProvider provider = ModelProviderManager.getModelProvider(project); provider.modify( new Runnable() { public void run() { IVirtualReference[] componentReferences = J2EEProjectUtilities.getJ2EEModuleReferences(component); if (componentReferences != null && componentReferences.length > 0) { final IDataModel dataModel = DataModelFactory.createDataModel( new AddComponentToEnterpriseApplicationDataModelProvider()); dataModel.setProperty( ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, component); Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent, String>(); for (int i = 0; i < componentReferences.length; i++) { IVirtualComponent referencedComponent = componentReferences[i].getReferencedComponent(); if (componentReferences[i].getRuntimePath().toString().equals("/")) { // $NON-NLS-1$ uriMap.put(referencedComponent, componentReferences[i].getArchiveName()); } else { uriMap.put( referencedComponent, componentReferences[i] .getRuntimePath() .append((new Path(componentReferences[i].getArchiveName())).lastSegment()) .toString()); } } dataModel.setProperty( ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, uriMap); try { dataModel.getDefaultOperation().execute(monitor, null); } catch (ExecutionException e) { JEEPlugin.logError(e); } } } }, IModelProvider.FORCESAVE); }
/** * Creates the JAX-RS Application as a servlet-mapping in the web.xml (which could be created if * necessary) * * @param monitor the progress monitor */ private void createWebXmlApplication(final IProgressMonitor monitor) { if (getJavaProject() != null) { final IProject project = getJavaProject().getProject(); final IModelProvider provider = ModelProviderManager.getModelProvider(project); provider.modify( new Runnable() { @Override public void run() { Object object = provider.getModelObject(); if (object instanceof WebApp) { final WebApp webApp = (WebApp) object; final ServletMapping servletMapping = WebFactory.eINSTANCE.createServletMapping(); servletMapping.setServletName(JaxrsClassnames.APPLICATION); final UrlPatternType urlPattern = JavaeeFactory.eINSTANCE.createUrlPatternType(); urlPattern.setValue(getApplicationPath()); servletMapping.getUrlPatterns().add(urlPattern); webApp.getServletMappings().add(servletMapping); webApp.getServletMappings(); } } }, IModelProvider.FORCESAVE); } }
public void run() { final WebApp webApp = (WebApp) ModelProviderManager.getModelProvider(project).getModelObject(); WebXmlUtilsForJavaEE.addServletMapping(webApp, servletName, servletClass, urlPatternString); }