removed saveReg call from stop()
proper validation to handle new project wizard finish when empty reg
create a defaultImpl on load, if not set
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
index 40153dc..d2534c4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
@@ -109,7 +109,6 @@
* @throws Exception
*/
public void stop(BundleContext context) throws Exception {
- saveJSFLibraryRegistry();
super.stop(context);
plugin = null;
}
@@ -163,7 +162,13 @@
}
//add adapter to maintain default implementation
if (jsfLibraryRegistry != null) {
+ //check that a default impl is set. if not pick first one if available.
+ JSFLibrary defLib = jsfLibraryRegistry.getDefaultImplementation();
+ if (defLib == null && jsfLibraryRegistry.getImplJSFLibraries().size() > 0){
+ jsfLibraryRegistry.setDefaultImplementation((JSFLibrary)jsfLibraryRegistry.getImplJSFLibraries().get(0));
+ }
jsfLibraryRegistry.eAdapters().add(MaintainDefaultImplementationAdapter.getInstance());
+
}
} catch(MalformedURLException mue) {
log(IStatus.ERROR, Messages.JSFLibraryRegistry_ErrorCreatingURL, mue);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryconfig/JSFLibraryConfigDialogSettingData.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryconfig/JSFLibraryConfigDialogSettingData.java
index e51105c..ae7f40e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryconfig/JSFLibraryConfigDialogSettingData.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryconfig/JSFLibraryConfigDialogSettingData.java
@@ -31,7 +31,7 @@
final private JSFLibraryRegistryUtil jsfLibReg;
final private boolean dftImplLibDeployFlag;
- final private String[] savedCompLibs;
+ private String[] savedCompLibs;
private JSFLibraryReference selJSFLibImpl; // lazy initialized
private List selJSFLibComp; // lazy initialized
@@ -120,19 +120,32 @@
* Only need to verify component library availability from sticky settings.
*/
private void verifySavedLibAvailability() {
+ List validLibs = new ArrayList();
if (savedCompLibs != null && savedCompLibs.length > 0) {
String item = null;
String[] attributes;
-
+ boolean invalidRefs = false;
for (int i = 0; i < savedCompLibs.length; i++) {
item = savedCompLibs[i];
attributes = item.split(SEPARATOR);
- if (jsfLibReg.getJSFLibraryReferencebyID(attributes[0]) == null) {
- JSFCorePlugin.log(IStatus.INFO, Messages.JSFLibCfgDialogSettingData_Sticky_Component_Lib_Not_Exist);
+ if (jsfLibReg.getJSFLibraryReferencebyID(attributes[0]) != null) {
+ validLibs.add(item);
+ } else {
+ invalidRefs = true;
+// JSFCorePlugin.log(IStatus.INFO, Messages.JSFLibCfgDialogSettingData_Sticky_Component_Lib_Not_Exist);
}
}
+ if (invalidRefs){
+ String [] validCompLibs = (String[])validLibs.toArray(new String[validLibs.size()]);
+ if (validCompLibs.length > 0)
+ System.arraycopy(validCompLibs, 0, savedCompLibs, 0, validCompLibs.length);
+ else
+ savedCompLibs = new String[]{};
+ }
}
+
+
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java
index 56f8d1f..edd520e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java
@@ -99,7 +99,7 @@
}
public IStatus validate(String name) {
errorMessage = null;
- if (name.equals(IMPLEMENTATION_LIBRARIES) && getBooleanProperty(DEPLOY_IMPLEMENTATION)) {
+ if (name.equals(IMPLEMENTATION)) {//&& getBooleanProperty(DEPLOY_IMPLEMENTATION)
List libs = JSFLibraryRegistryUtil.getInstance().getJSFLibraryRegistry().getJSFLibrariesByName(getStringPropertyWithDefaultStripped(IMPLEMENTATION_LIBRARIES));
JSFLibrary lib = ! libs.isEmpty() ? (JSFLibrary)libs.get(0) : null;
IStatus status = validateImpl(lib);
@@ -331,8 +331,10 @@
List list = new ArrayList();
if (JSFCorePlugin.getDefault().getJSFLibraryRegistry() != null) {
JSFLibrary jsfLib = JSFCorePlugin.getDefault().getJSFLibraryRegistry().getDefaultImplementation();
- JSFLibraryReference prjJSFLib = new JSFLibraryReference(jsfLib, true, true);
- list.add(prjJSFLib);
+ if (jsfLib != null){
+ JSFLibraryReference prjJSFLib = new JSFLibraryReference(jsfLib, true, true);
+ list.add(prjJSFLib);
+ }
}
return list;
}