Bug 312475 - JUnit failures in metadata and pagedesigner tests
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
index 4eb8ef6..5c8fa84 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
@@ -11,15 +11,15 @@
package org.eclipse.jst.jsf.common.metadata.internal;
-import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
/**
* A factory that will produce {@link IMetaDataModelManager}s
*/
public interface IMetaDataModelManagerFactory {
/**
- * @param project
- * @return IMetaDataModelManager for the project
+ * @param projectOrWorkspaceRoot
+ * @return IMetaDataModelManager for the project, or shared IMetaDataModelManager for the workspace
*/
- public IMetaDataModelManager getInstance(IProject project);
+ public IMetaDataModelManager getInstance(IResource projectOrWorkspaceRoot);
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
index dd0e61b..30059f2 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
@@ -14,6 +14,7 @@
import java.util.List;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
@@ -29,7 +30,7 @@
* Produces {@link IMetaDataModelManager}s
*
*/
-public final class MetaDataModelManagerFactory extends ResourceSingletonObjectManager<IMetaDataModelManager, IProject> {
+public final class MetaDataModelManagerFactory extends ResourceSingletonObjectManager<IMetaDataModelManager, IResource> {
private static MetaDataModelManagerFactory INSTANCE;
@@ -53,10 +54,10 @@
*/
public static IMetaDataModelManager getMetaDataModelManagerInstance(final IProject project) {
try {
- return getMetaDataModelManagerFactoryInstance(project).getInstance(project);
+ return getMetaDataModelManagerFactoryInstance(project).getInstance(project != null ? project : ResourcesPlugin.getWorkspace().getRoot());
} catch (ManagedObjectException e) {
- if (project.getProject() != null)
- JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getProject().getName()+ " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (project != null)
+ JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getName()+ " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
else
JSFCommonPlugin.log(e, "Cannot create workspace shared IMetaDataModelManager (1)"); //$NON-NLS-1$
}
@@ -89,32 +90,32 @@
}
@Override
- protected IMetaDataModelManager createNewInstance(final IProject project) {
+ protected IMetaDataModelManager createNewInstance(final IResource resource) {
try {
- final IMetaDataModelManagerFactory factory = getMetaDataModelManagerFactoryProviderInstances(project);
+ final IMetaDataModelManagerFactory factory = getMetaDataModelManagerFactoryProviderInstances(resource);
if (factory != null)
- return factory.getInstance(project);
+ return factory.getInstance(resource);
} catch (Exception e) {
- if (project != null)
- JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getName()+ " (2)"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (resource != null)
+ JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+resource.getName()+ " (2)"); //$NON-NLS-1$ //$NON-NLS-2$
else
JSFCommonPlugin.log(e, "Cannot create workspace shared IMetaDataModelManager (2)"); //$NON-NLS-1$
}
return null;
}
- private IMetaDataModelManagerFactory getMetaDataModelManagerFactoryProviderInstances(final IProject project) {
+ private IMetaDataModelManagerFactory getMetaDataModelManagerFactoryProviderInstances(final IResource resource) {
final CompositeFactorySelectionStrategyProvider factoryProvider = new CompositeFactorySelectionStrategyProvider();
- return factoryProvider != null ? factoryProvider.getFactoryToUse(project) : null;
+ return factoryProvider != null ? factoryProvider.getFactoryToUse(resource) : null;
}
private class CompositeFactorySelectionStrategyProvider
{
- public IMetaDataModelManagerFactory getFactoryToUse(final IProject project) {
+ public IMetaDataModelManagerFactory getFactoryToUse(final IResource resource) {
final MetaDataModelManagerProviderSelectionStrategy providerSelector = new MetaDataModelManagerProviderSelectionStrategy();
addStrategies(providerSelector);
- final IMetaDataModelManagerFactory provider = providerSelector.perform(project);
+ final IMetaDataModelManagerFactory provider = providerSelector.perform(resource);
if (provider != providerSelector.getNoResult())
{
return provider;
@@ -132,7 +133,7 @@
private static class MetaDataModelManagerProviderSelectionStrategy
extends
- AbstractTestableExtensibleDefaultProviderSelectionStrategy<IProject, IMetaDataModelManagerFactory> {
+ AbstractTestableExtensibleDefaultProviderSelectionStrategy<IResource, IMetaDataModelManagerFactory> {
private static final IMetaDataModelManagerFactory NO_RESULT = null;
@@ -143,7 +144,7 @@
}
private abstract class AbstractManagerProviderStrategy
- implements ISimpleStrategy<IProject, IMetaDataModelManagerFactory> {
+ implements ISimpleStrategy<IResource, IMetaDataModelManagerFactory> {
private final IMetaDataModelManagerFactory NO_RESULT = null;
public IMetaDataModelManagerFactory getNoResult() {
@@ -151,11 +152,10 @@
}
}
-
private class DefaultManagerProviderStrategy extends
AbstractManagerProviderStrategy {
- public IMetaDataModelManagerFactory perform(final IProject input) throws Exception {
+ public IMetaDataModelManagerFactory perform(final IResource input) throws Exception {
return new DefaultManagerProvider();
}
@@ -164,9 +164,9 @@
private static class DefaultManagerProvider
implements IMetaDataModelManagerFactory {
- public IMetaDataModelManager getInstance(final IProject project) {
- if (project != null)
- return new MetaDataModelManager(project);
+ public IMetaDataModelManager getInstance(final IResource project) {
+ if (project != null && project instanceof IProject)
+ return new MetaDataModelManager((IProject)project);
return MetaDataModelManager.getSharedInstance();
}
@@ -175,7 +175,7 @@
private class ExtensionBasedManagerProviderStrategy
extends AbstractManagerProviderStrategy {
- public IMetaDataModelManagerFactory perform(final IProject input) throws Exception {
+ public IMetaDataModelManagerFactory perform(final IResource input) throws Exception {
return EXT_PT_BASED_FACTORY != null ? EXT_PT_BASED_FACTORY : getNoResult();
}
}