wlu: handle auto-syn convert file checking
diff --git a/1.5/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/FileUtil.java b/1.5/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/FileUtil.java
index 1a34bdb..913082c 100644
--- a/1.5/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/FileUtil.java
+++ b/1.5/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/FileUtil.java
@@ -39,7 +39,11 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.epf.common.CommonPlugin;
+import org.osgi.framework.Bundle;
 
 /**
  * Utility class for managing directories and files.
@@ -1201,4 +1205,32 @@
 		out.close();
 	}
 	
+	public static class FileChecker {		
+		public IStatus syncExecCheckModify(List<String> modifiedFiles) {
+			return Status.OK_STATUS;
+		}				
+	}
+	
+	private static FileChecker fileChecker;
+	public static void loadDeafultFileChecker() {
+		if (fileChecker != null) {
+			return;
+		}
+		Bundle bundle = Platform.getBundle("org.eclipse.epf.import");
+		try { 
+			bundle.start();
+		} catch (Exception e) {
+		}
+	}
+	public static void setFileChecker(FileChecker fileChecker) {
+		FileUtil.fileChecker = fileChecker;
+	}
+	
+	public static IStatus syncExecCheckModify(List<String> modifiedFiles) {
+		if (fileChecker != null) {
+			return fileChecker.syncExecCheckModify(modifiedFiles);
+		}
+		return Status.OK_STATUS;
+	}
+	
 }
\ No newline at end of file
diff --git a/1.5/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/ImportPlugin.java b/1.5/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/ImportPlugin.java
index a93bb85..b02a208 100644
--- a/1.5/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/ImportPlugin.java
+++ b/1.5/plugins/org.eclipse.epf.import/src/org/eclipse/epf/importing/ImportPlugin.java
@@ -10,7 +10,13 @@
 //------------------------------------------------------------------------------
 package org.eclipse.epf.importing;
 
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.epf.common.ui.AbstractPlugin;
+import org.eclipse.epf.common.utils.FileUtil;
+import org.eclipse.epf.common.utils.FileUtil.FileChecker;
+import org.eclipse.epf.importing.services.FileModifyChecker;
 import org.osgi.framework.BundleContext;
 
 
@@ -38,6 +44,12 @@
 	 */
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
+		FileChecker fileChecker = new FileChecker() {
+			public IStatus syncExecCheckModify(List modifiedFiles) {
+				return FileModifyChecker.syncExecCheckModify(modifiedFiles);
+			}
+		};		
+		FileUtil.setFileChecker(fileChecker);		
 	}
 
 	/**
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
index dc489e5..c3e99de 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
@@ -7,9 +7,11 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.epf.common.utils.FileUtil;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.LibraryServiceUtil;
 import org.eclipse.epf.library.configuration.ConfigurationHelper;
@@ -499,6 +501,16 @@
 				.getCurrentPersister().getFailSafePersister();
 
 		try {
+			List<String> modifiedFiles = new ArrayList<String>();
+			for (Resource res : resouresToSave) {
+				String path = res.getURI().toFileString();
+				modifiedFiles.add(path);
+			}
+			FileUtil.loadDeafultFileChecker();
+			IStatus status = FileUtil.syncExecCheckModify(modifiedFiles);
+			// To do: check status and handle bad status here.
+			// For now, leave the following catch to handle bad status
+			
 			for (Iterator<Resource> it = resouresToSave.iterator(); it
 					.hasNext();) {
 				MultiFileXMIResourceImpl res = (MultiFileXMIResourceImpl) it