Bug 361479 - [JSF2.0] There is no JSF 2.1 facet, preset, or downloadable library.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
index 4ecb50c..3bb2d58 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
@@ -23,6 +23,9 @@
JSFv20Project=JavaServer Faces v2.0 Project
JSFv20PresetDesc=Configures a Dynamic Web application to use JSF v2.0
+
+JSFv21Project=JavaServer Faces v2.1 Project
+JSFv21PresetDesc=Configures a Dynamic Web application to use JSF v2.1
# ====================================================================
pluginName = Constraints Model
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
index 329e3c4..9381d5d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
@@ -64,7 +64,15 @@
<requires facet="jst.web" version="[2.5"/>
</and>
</constraint>
- </project-facet-version>
+ </project-facet-version>
+
+ <project-facet-version facet="jst.jsf" version="2.1">
+ <constraint>
+ <and>
+ <requires facet="jst.web" version="[2.5"/>
+ </and>
+ </constraint>
+ </project-facet-version>
<action id="jst.jsf.v11.install" facet="jst.jsf" type="INSTALL" version="1.1">
<delegate class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallDelegate"/>
@@ -94,7 +102,17 @@
<action id="jst.jsf.v20.uninstall" facet="jst.jsf" version="2.0" type="UNINSTALL">
<config-factory class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetUninstallConfig$Factory"/>
<delegate class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetUninstallDelegate"/>
- </action>
+ </action>
+
+ <action id="jst.jsf.v21.install" facet="jst.jsf" type="INSTALL" version="2.1">
+ <delegate class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallDelegate"/>
+ <config-factory class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallDataModelProvider"/>
+ </action>
+
+ <action id="jst.jsf.v21.uninstall" facet="jst.jsf" version="2.1" type="UNINSTALL">
+ <config-factory class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetUninstallConfig$Factory"/>
+ <delegate class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetUninstallDelegate"/>
+ </action>
</extension>
@@ -147,12 +165,33 @@
%JSFv20PresetDesc
</description>
</static-preset>
+ <static-preset
+ id="preset.jst.jsf.v2_1" extends="default.configuration">
+ <label>
+ %JSFv21Project
+ </label>
+ <facet
+ id="jst.java"
+ version="1.6">
+ </facet>
+ <facet
+ id="jst.web"
+ version="3.0">
+ </facet>
+ <facet
+ id="jst.jsf"
+ version="2.1">
+ </facet>
+ <description>
+ %JSFv21PresetDesc
+ </description>
+ </static-preset>
</extension>
<extension point="org.eclipse.wst.common.project.facet.core.runtimes">
<supported>
<runtime-component any="true"/>
- <facet id="jst.jsf" version="1.1,1.2,2.0"/>
+ <facet id="jst.jsf" version="1.1,1.2,2.0,2.1"/>
</supported>
</extension>
@@ -457,6 +496,17 @@
<detector class="org.eclipse.jst.jsf.core.internal.project.facet.LegacyJSFLibraryProviderDetector"/>
</extension>
+ <!-- JSF 2.1 Downloadable library provider -->
+ <extension point="org.eclipse.jst.common.project.facet.core.downloadableLibraries">
+ <import-definitions url="http://www.eclipse.org/webtools/jsf/jsf-library/jsf-2.1-downloadable-libraries.xml">
+ <enablement>
+ <with variable="requestingProjectFacet">
+ <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jst.jsf:2.1" forcePluginActivation="true"/>
+ </with>
+ </enablement>
+ </import-definitions>
+ </extension>
+
<!-- JSF 2.0 Downloadable library provider -->
<extension point="org.eclipse.jst.common.project.facet.core.downloadableLibraries">
<import-definitions url="http://www.eclipse.org/webtools/jsf/jsf-library/jsf-2.0-downloadable-libraries.xml">
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/IJSFCoreConstants.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/IJSFCoreConstants.java
index 0e8ff1a..390ce6c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/IJSFCoreConstants.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/IJSFCoreConstants.java
@@ -65,6 +65,15 @@
public static final String JSF_VERSION_2_0 = FACET_VERSION_2_0;
/**
+ * The facet version for a JSF 2.1 project
+ */
+ public static final String FACET_VERSION_2_1 = "2.1"; //$NON-NLS-1$
+ /**
+ * The version string for a JSF 2.1 project
+ */
+ public static final String JSF_VERSION_2_1 = FACET_VERSION_2_1;
+
+ /**
* @param facet
* @return true if the facet is a jsf facet.
*
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
index a76ab54..cb897ba 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
@@ -42,7 +42,11 @@
/**
* Supports JSF Version 2.0
*/
- V2_0;
+ V2_0,
+ /**
+ * Supports JSF Version 2.1
+ */
+ V2_1;
// WARNING: you MUST add newer versions to the end; the ordinal value of
// of the version is used in compareTo.
@@ -58,6 +62,8 @@
return IJSFCoreConstants.JSF_VERSION_1_2;
case V2_0:
return IJSFCoreConstants.JSF_VERSION_2_0;
+ case V2_1:
+ return IJSFCoreConstants.JSF_VERSION_2_1;
case UNKNOWN:
return "unknown"; //$NON-NLS-1$
default:
@@ -83,10 +89,14 @@
{
return V1_2;
}
- else if (IJSFCoreConstants.FACET_VERSION_2_0.equals(valueAsString))
+ else if (IJSFCoreConstants.JSF_VERSION_2_0.equals(valueAsString))
{
return V2_0;
}
+ else if (IJSFCoreConstants.JSF_VERSION_2_1.equals(valueAsString))
+ {
+ return V2_1;
+ }
else if ("unknown".equals(valueAsString)) //$NON-NLS-1$
{
return UNKNOWN;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtilFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtilFactory.java
index 7e9bcd2..ccd406d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtilFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtilFactory.java
@@ -61,6 +61,8 @@
return new JSFUtils12(modelProvider);
case V2_0:
return new JSFUtils20(modelProvider);
+ case V2_1:
+ return new JSFUtils21(modelProvider);
default:
throw new IllegalArgumentException("Unknown version: "+version); //$NON-NLS-1$
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils20.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils20.java
index 28583ae..498ac01 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils20.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils20.java
@@ -21,6 +21,20 @@
super(JSFVersion.V2_0, modelProvider);
}
+ /**
+ * @param jsfVersion
+ * @param modelProvider
+ */
+ protected JSFUtils20(final JSFVersion jsfVersion, final IModelProvider modelProvider)
+ {
+ super(jsfVersion, modelProvider);
+ if (jsfVersion.compareTo(JSFVersion.V2_0) < 0)
+ {
+ throw new IllegalArgumentException(
+ "JSFVersion must be at least 2.0"); //$NON-NLS-1$
+ }
+ }
+
@Override
protected String getDefaultDefaultSuffix()
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils21.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils21.java
new file mode 100644
index 0000000..618545c
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils21.java
@@ -0,0 +1,36 @@
+package org.eclipse.jst.jsf.core.internal.project.facet;
+
+import org.eclipse.jst.j2ee.model.IModelProvider;
+import org.eclipse.jst.jsf.core.JSFVersion;
+
+/**
+ * JSF Utils instance for JSF 2.1.
+ *
+ * @author ian.trimble@oracle.com
+ */
+/* package: use JSFUtilFactory */class JSFUtils21 extends JSFUtils20
+{
+
+ /**
+ * @param modelProvider
+ */
+ protected JSFUtils21(final IModelProvider modelProvider)
+ {
+ super(JSFVersion.V2_1, modelProvider);
+ }
+
+ /**
+ * @param jsfVersion
+ * @param modelProvider
+ */
+ protected JSFUtils21(final JSFVersion jsfVersion, final IModelProvider modelProvider)
+ {
+ super(jsfVersion, modelProvider);
+ if (jsfVersion.compareTo(JSFVersion.V2_1) < 0)
+ {
+ throw new IllegalArgumentException(
+ "JSFVersion must be at least 2.1"); //$NON-NLS-1$
+ }
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml
index 054e21a..de23051 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml
@@ -62,6 +62,12 @@
class="org.eclipse.jst.jsf.ui.internal.project.facet.JSFFacetInstallPage">
</page>
</wizard-pages>
+ <wizard-pages
+ action="jst.jsf.v21.install">
+ <page
+ class="org.eclipse.jst.jsf.ui.internal.project.facet.JSFFacetInstallPage">
+ </page>
+ </wizard-pages>
</extension>
<extension point="org.eclipse.wst.sse.ui.editorConfiguration">