public boolean performOk() {
    LibraryInstallDelegate installDelegate = super.getLibraryInstallDelegate();
    if (installDelegate == null)
      // if null user has uninstalled the facet, no reason to update the project properties
      return true;
    ILibraryProvider libraryProvider = installDelegate.getLibraryProvider();
    if (libraryProvider != null) {
      String id = libraryProvider.getId();
      if (!initialInstallDelegateLibraryProviderID.equals(id)
          || IJAXRSUIConstants.USER_LIBRARY_ID.equals(id)) {
        // This will update the libraries by calling the library
        // provider delegate
        super.performOk();
      }
    }

    // Update the servlet properties
    try {
      if (JAXRSFacetDelegateUtils.isDynamicWebProject(getProject())
          && doesDDFileExist(getProject(), webXMLPath)) {
        createServletAndModifyWebXML(getProject(), null, new NullProgressMonitor());
      }
    } catch (CoreException e) {
      JAXRSUIPlugin.log(
          IStatus.ERROR,
          NLS.bind(Messages.JAXRSFacetUninstallDelegate_ConfigErr, getProject().getName()),
          e);
    }
    return true;
  }
 @Override
 protected Control createPageContents(Composite parent) {
   Control c = super.createPageContents(parent);
   LibraryInstallDelegate initialInstallDelegate = super.getLibraryInstallDelegate();
   if (initialInstallDelegate != null) {
     ILibraryProvider initialLibraryProvider = initialInstallDelegate.getLibraryProvider();
     if (initialLibraryProvider != null) {
       String initID = initialLibraryProvider.getId();
       initialInstallDelegateLibraryProviderID =
           (initID == null) ? initialInstallDelegateLibraryProviderID : initID;
     }
   }
   this.webXMLPath = new Path("WEB-INF").append("web.xml"); // $NON-NLS-1$ //$NON-NLS-2$
   try {
     if (JAXRSFacetDelegateUtils.isDynamicWebProject(getProject())) {
       this.provider = JAXRSUtils.getModelProvider(getProject());
       if (provider != null) this.webAppObj = provider.getModelObject();
       if (doesDDFileExist(getProject(), this.webXMLPath)) {
         servletInfoGroup = new ServletInformationGroup((Composite) c, SWT.NONE);
         servletInfoGroup.txtJAXRSServletName.addListener(
             SWT.Modify,
             new Listener() {
               public void handleEvent(Event arg0) {
                 updateValidation();
               }
             });
         servletInfoGroup.txtJAXRSServletClassName.addListener(
             SWT.Modify,
             new Listener() {
               public void handleEvent(Event arg0) {
                 updateValidation();
               }
             });
         initializeValues();
       }
     }
   } catch (CoreException e) {
     JAXRSUIPlugin.log(
         IStatus.ERROR,
         NLS.bind(Messages.JAXRSFacetUninstallDelegate_ConfigErr, getProject().getName()),
         e);
   }
   return c;
 }