Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoritrimble2011-03-11 22:50:42 +0000
committeritrimble2011-03-11 22:50:42 +0000
commit64bb7567c563428c47cc59b5b84344b1164a9a35 (patch)
treec4449f5dcd513f6caeff136ca892de8e64915b31
parent6b4082ad6b8235e15d6766dfedc75d3ef1e5317c (diff)
downloadwebtools.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.java47
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) {

Back to the top