wlu: jazzMode prototyping
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/editors/MethodElementEditor.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/editors/MethodElementEditor.java
index e626b75..f6bbe41 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/editors/MethodElementEditor.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/editors/MethodElementEditor.java
@@ -148,6 +148,7 @@
 import org.eclipse.epf.uma.UmaPackage;
 import org.eclipse.epf.uma.WorkProduct;
 import org.eclipse.epf.uma.WorkProductType;
+import org.eclipse.epf.uma.ecore.impl.MultiResourceEObject;
 import org.eclipse.epf.uma.util.UmaUtil;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -1277,6 +1278,17 @@
 	 * @see org.eclipse.epf.authoring.ui.editors.AbstractBaseFormEditor#doSave(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public void doSave(IProgressMonitor monitor) {
+		if (MultiResourceEObject.jazzMode) {
+			try {
+				Services.getJazzPersister().save(elementObj);
+				Services.getJazzPersister().commit();
+			} catch (Exception e) {
+				e.printStackTrace();				
+			}
+			
+			return;
+		}
+
 		if (DEBUG) {
 			System.out
 					.println("MethodElementEditor.doSave: saving changes to method library"); //$NON-NLS-1$
diff --git a/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/library/persistence/PersistenceService.java b/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/library/persistence/PersistenceService.java
index 3660de9..bba7c48 100644
--- a/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/library/persistence/PersistenceService.java
+++ b/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/library/persistence/PersistenceService.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.common.CommonPlugin;
 import org.eclipse.epf.persistence.PersistencePlugin;
 import org.eclipse.epf.services.Services;
+import org.eclipse.epf.uma.ecore.impl.MultiResourceEObject;
 import org.osgi.framework.Bundle;
 
 /**
@@ -27,6 +28,8 @@
  * @since 1.0
  */
 public class PersistenceService {
+	public static boolean jazzMode = MultiResourceEObject.jazzMode;
+	
 	private static final boolean DEBUG = PersistencePlugin.getDefault().isDebugging();
 	
 	public static final PersistenceService INSTANCE = new PersistenceService();
@@ -91,11 +94,23 @@
 			IExtensionPoint extensionPoint = extensionRegistry
 					.getExtensionPoint(
 							"org.eclipse.epf.library.persistence", "resourceSetFactories"); //$NON-NLS-1$ //$NON-NLS-2$
+			
+			String jazzLibPlugin = "com.ibm.rmc.jazz.uma.library";
+			
 			if (extensionPoint != null) {
 				IExtension[] extensions = extensionPoint.getExtensions();
 				for (int i = 0; i < extensions.length; i++) {
 					IExtension extension = extensions[i];
 					String pluginId = extension.getNamespaceIdentifier();
+					if (jazzMode) {
+						if (!pluginId.equals(jazzLibPlugin)) {
+							continue;
+						}
+					} else {
+						if (pluginId.equals(jazzLibPlugin)) {
+							continue;
+						}
+					}
 					Bundle bundle = Platform.getBundle(pluginId);
 					IConfigurationElement[] configElements = extension
 							.getConfigurationElements();
diff --git a/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/MultiFileResourceSetImpl.java b/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/MultiFileResourceSetImpl.java
index 66dc74d..988f6f9 100644
--- a/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/MultiFileResourceSetImpl.java
+++ b/2.0/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/MultiFileResourceSetImpl.java
@@ -599,12 +599,20 @@
 	public void initialize(boolean loadConfigurations) {
 		// load the ResourceManager tree and opposite features
 		//
-		loadResourceManagerTree();
+		if (!MultiResourceEObject.jazzMode) {
+			loadResourceManagerTree();
 
-		setContainersOfLoadedElements();
-		
-		if(loadConfigurations) {
-			loadConfigurations();
+			setContainersOfLoadedElements();
+
+			if (loadConfigurations) {
+				loadConfigurations();
+			}
+		} else {
+			MethodLibrary lib = getMethodLibrary();
+			
+			for (Iterator it = lib.eContents().iterator(); it.hasNext();) {
+				it.next();
+			}
 		}
 
 		loadOppositeFeatures();
diff --git a/2.0/plugins/org.eclipse.epf.library.xmi/src/org/eclipse/epf/library/xmi/XMILibraryManager.java b/2.0/plugins/org.eclipse.epf.library.xmi/src/org/eclipse/epf/library/xmi/XMILibraryManager.java
index 1eeef1b..9523ff0 100644
--- a/2.0/plugins/org.eclipse.epf.library.xmi/src/org/eclipse/epf/library/xmi/XMILibraryManager.java
+++ b/2.0/plugins/org.eclipse.epf.library.xmi/src/org/eclipse/epf/library/xmi/XMILibraryManager.java
@@ -44,6 +44,7 @@
 import org.eclipse.epf.persistence.util.PersistenceUtil;
 import org.eclipse.epf.services.Services;
 import org.eclipse.epf.uma.MethodLibrary;
+import org.eclipse.epf.uma.ecore.impl.MultiResourceEObject;
 import org.eclipse.osgi.util.NLS;
 
 import com.ibm.icu.util.Calendar;
@@ -251,17 +252,21 @@
 	protected MethodLibrary openMethodLibrary(File path)
 			throws LibraryServiceException {
 		File libraryXMIFile = new File(path, LIBRARY_XMI);
-		if (!libraryXMIFile.exists()) {
+		if (!libraryXMIFile.exists() && !MultiResourceEObject.jazzMode) {
 			throw new LibraryNotFoundException();
 		}
 
-		VersionUtil.VersionCheckInfo info = VersionUtil.checkLibraryVersion(libraryXMIFile);
-		IStatus status = XMILibraryUtil.checkVersion(libraryXMIFile, info);
-		if(!status.isOK()) {
-			throw new LibraryServiceException(status.getMessage());
-		}
-		else if(MappingUtil.conversionRequired(libraryXMIFile.getAbsolutePath(), info)) {
-			throw new LibraryServiceException(LibraryResources.libUpgradeRequired_err_msg);
+		if (!MultiResourceEObject.jazzMode) {
+			VersionUtil.VersionCheckInfo info = VersionUtil
+					.checkLibraryVersion(libraryXMIFile);
+			IStatus status = XMILibraryUtil.checkVersion(libraryXMIFile, info);
+			if (!status.isOK()) {
+				throw new LibraryServiceException(status.getMessage());
+			} else if (MappingUtil.conversionRequired(libraryXMIFile
+					.getAbsolutePath(), info)) {
+				throw new LibraryServiceException(
+						LibraryResources.libUpgradeRequired_err_msg);
+			}
 		}
 		
 		try {
diff --git a/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/AbstractLibraryManager.java b/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/AbstractLibraryManager.java
index c79b199..5b2c1cc 100644
--- a/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/AbstractLibraryManager.java
+++ b/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/AbstractLibraryManager.java
@@ -988,19 +988,32 @@
 				public void run() {
 					library.getMethodPlugins().add(plugin);
 
-					ILibraryPersister.FailSafeMethodLibraryPersister persister = Services
-							.getLibraryPersister(getLibraryPersisterType())
-							.getFailSafePersister();
-					try {
-						persister.save(library.eResource());
-						persister.commit();
-					} catch (Exception e) {
-						persister.rollback();
-						exceptions[0] = e;
-						return;
-					}
+					if (MultiResourceEObject.jazzMode) {
+						try {
+							Services.getJazzPersister().save(library);
+							Services.getJazzPersister().save(plugin);
+							Services.getJazzPersister().commit();
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					} else {
 
-					plugin.eResource().eAdapters().add(resourceChangedListener);
+						ILibraryPersister.FailSafeMethodLibraryPersister persister = Services
+								.getLibraryPersister(getLibraryPersisterType())
+								.getFailSafePersister();
+						try {
+							persister.save(library.eResource());
+							persister.commit();
+						} catch (Exception e) {
+							persister.rollback();
+							exceptions[0] = e;
+							return;
+						}
+
+						plugin.eResource().eAdapters().add(
+								resourceChangedListener);
+					}
+					
 				}
 			});
 		} catch (Exception e) {
diff --git a/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryManagerFactory.java b/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryManagerFactory.java
index 6bde073..68a151d 100644
--- a/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryManagerFactory.java
+++ b/2.0/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryManagerFactory.java
@@ -21,6 +21,7 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.epf.library.internal.LibraryManagerElement;
 import org.eclipse.epf.services.Services;
+import org.eclipse.epf.uma.ecore.impl.MultiResourceEObject;
 import org.osgi.framework.Bundle;
 
 /**
@@ -94,11 +95,21 @@
 		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
 		IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(
 				EXTENSION_POINT_NAMESPACE, EXTENSION_POINT_NAME);
+		String jazzLibPlugin = "com.ibm.rmc.jazz.uma.library";
 		if (extensionPoint != null) {
 			IExtension[] extensions = extensionPoint.getExtensions();
 			for (int i = 0; i < extensions.length; i++) {
 				IExtension extension = extensions[i];
 				String pluginId = extension.getNamespaceIdentifier();
+				if (MultiResourceEObject.jazzMode) {
+					if (!pluginId.equals(jazzLibPlugin)) {
+						continue;
+					}
+				} else {
+					if (pluginId.equals(jazzLibPlugin)) {
+						continue;
+					}
+				}
 				Bundle bundle = Platform.getBundle(pluginId);
 				IConfigurationElement[] configElements = extension
 						.getConfigurationElements();