diff options
author | itrimble | 2011-03-11 22:50:42 +0000 |
---|---|---|
committer | itrimble | 2011-03-11 22:50:42 +0000 |
commit | 64bb7567c563428c47cc59b5b84344b1164a9a35 (patch) | |
tree | c4449f5dcd513f6caeff136ca892de8e64915b31 | |
parent | 6b4082ad6b8235e15d6766dfedc75d3ef1e5317c (diff) | |
download | webtools.jsf-64bb7567c563428c47cc59b5b84344b1164a9a35.tar.gz webtools.jsf-64bb7567c563428c47cc59b5b84344b1164a9a35.tar.xz webtools.jsf-64bb7567c563428c47cc59b5b84344b1164a9a35.zip |
Bug 293460 - Installing JSF facet should update web.xml only if needed.
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java index 3b5789d86..c993e15f2 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java +++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java @@ -339,21 +339,40 @@ public final class JSFFacetInstallDelegate implements IDelegate { final IDataModel config, final IProgressMonitor monitor, final JSFUtils jsfUtil) { + // Bug 293460 - Installing JSF facet should update web.xml only if needed. + if (shouldModify(jsfUtil)) { + + final IModelProvider provider = jsfUtil.getModelProvider(); + final IPath webXMLPath = new Path("WEB-INF").append("web.xml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (jsfUtil.isJavaEE(provider.getModelObject())) + { + provider.modify(new UpdateWebXMLForJavaEE(project, config, jsfUtil), + doesDDFileExist(project, webXMLPath) ? webXMLPath + : IModelProvider.FORCESAVE); + } else + {// must be 2.3 or 2.4 + provider.modify(new UpdateWebXMLForJ2EE(project, config, jsfUtil), + webXMLPath); + } + // TODO: is the MyFaces check a todo? + // Check if runtime is MyFaces or Sun-RI + + } + } - final IModelProvider provider = jsfUtil.getModelProvider(); - final IPath webXMLPath = new Path("WEB-INF").append("web.xml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (jsfUtil.isJavaEE(provider.getModelObject())) - { - provider.modify(new UpdateWebXMLForJavaEE(project, config, jsfUtil), - doesDDFileExist(project, webXMLPath) ? webXMLPath - : IModelProvider.FORCESAVE); - } else - {// must be 2.3 or 2.4 - provider.modify(new UpdateWebXMLForJ2EE(project, config, jsfUtil), - webXMLPath); - } - // TODO: is the MyFaces check a todo? - // Check if runtime is MyFaces or Sun-RI + private boolean shouldModify(JSFUtils jsfUtil) { + boolean shouldModify = true; + IModelProvider provider = jsfUtil.getModelProvider(); + if (provider != null) { + WebApp webApp = (WebApp) provider.getModelObject(); + if (webApp != null) { + Object objServlet = jsfUtil.findJSFServlet(webApp); + if (objServlet != null) { + shouldModify = false; + } + } + } + return shouldModify; } private boolean doesDDFileExist(final IProject project, final IPath webXMLPath) { |