wlu: updated
diff --git a/org.eclipse.epf.toolbox/src/org/eclipse/epf/toolbox/utils/CopyPIIFiles.java b/org.eclipse.epf.toolbox/src/org/eclipse/epf/toolbox/utils/CopyPIIFiles.java
index 6a62a12..6925234 100644
--- a/org.eclipse.epf.toolbox/src/org/eclipse/epf/toolbox/utils/CopyPIIFiles.java
+++ b/org.eclipse.epf.toolbox/src/org/eclipse/epf/toolbox/utils/CopyPIIFiles.java
@@ -25,6 +25,11 @@
 		".js",
 	};
 	
+	private static final String[] excludeFiles = {
+		"build.properties",
+		"package.html",
+	};
+	
 	private static final String[] pathNames = {
 		"com.ibm.rmc",
 		"org.eclipse.epf",
@@ -38,6 +43,7 @@
 	
 	private static Set<String> typeSet; 
 	private static Set<String> excludeFolderSet; 
+	private static Set<String> excludeFileSet;
 	
 	
 	static {
@@ -50,6 +56,11 @@
 		for (String folder : excludeFolders) {
 			excludeFolderSet.add(folder);
 		}
+		
+		excludeFileSet = new HashSet<String>();
+		for (String file : excludeFiles) {
+			excludeFileSet.add(file);
+		}
 	}
 	
 	//Hard coded parameters
@@ -59,6 +70,9 @@
 	private File sourceRootFolder;
 	private File targetRootFolder;
 	
+	private Set<File> nonProcessedFolderSet;
+	private Set<File> nonProcessedFileSet;
+	
 	public CopyPIIFiles() {
 		sourceRootFolder = new File(sourceRootFolderStr);
 		targetRootFolder = new File(targetRootFolderStr);	
@@ -69,12 +83,28 @@
 	}	
 	
 	public void execute() {
+		nonProcessedFolderSet = new HashSet<File>();
+		nonProcessedFileSet = new HashSet<File>();
 		if (targetRootFolder.exists()) {
 			FileUtil.deleteAllFiles(targetRootFolder.getAbsolutePath());
 		} else {
 			targetRootFolder.mkdir();
 		}
 		copy(sourceRootFolder, targetRootFolder);
+		
+		if (localDebug) {
+			System.out.println("LD> folders not processed: ");
+			for (File file : nonProcessedFolderSet) {
+				System.out.println("LD> " + file.getAbsolutePath().substring(sourceRootFolderStr.length()));
+			}
+			System.out.println("");
+			
+			System.out.println("LD> files not processed: ");
+			for (File file : nonProcessedFileSet) {
+				System.out.println("LD> " + file.getAbsolutePath().substring(sourceRootFolderStr.length()));
+			}
+			System.out.println("");
+		}
 	}
 	
 	private boolean copy(File srcFolder, File tgtFolder) {
@@ -83,6 +113,7 @@
 				
 		List<File> subDirs = new ArrayList<File>();
 		int ccCount = 0;
+		List<String> copiedFileNames = new ArrayList<String>();
 		for (File file : files) {
 			if (file.isDirectory()) {
 				if (toProcessFolder(file)) {
@@ -93,13 +124,18 @@
 					ccCount++;
 					File tgtFile = new File(tgtFolder, file.getName());
 					FileUtil.copyFile(file, tgtFile);
+					copiedFileNames.add(file.getName());
 				}
 			}
 		}
 		
 		if (localDebug && ccCount > 0) {
-			System.out.println("LD> # of file copied: " + ccCount + ", " + srcFolder.getAbsolutePath().substring(
+			System.out.println("LD> Copied: " + ccCount + ", " + srcFolder.getAbsolutePath().substring(
 							sourceRootFolderStr.length()));
+			for (String fileName : copiedFileNames) {
+				System.out.println("LD> Copied: " + fileName);
+			}
+			System.out.println("");
 		}
 		
 		for (File subDir : subDirs) {
@@ -114,11 +150,17 @@
 	
 	private boolean toCopyFile(File file) {
 		String fileName = file.getName();
+		if (excludeFileSet.contains(fileName)) {
+			nonProcessedFileSet.add(file);
+			return false;
+		}		
+		
 		for (String str : startWithFiles) {
 			if (fileName.startsWith(str)) {
 				return true;
 			}
 		}
+		
 		int ix = fileName.lastIndexOf(".");
 		if (ix < 0) {
 			return false;
@@ -128,6 +170,14 @@
 	}
 	
 	private boolean toProcessFolder(File folder) {
+		boolean ret = toProcessFolder_(folder);
+		if (!ret) {
+			nonProcessedFolderSet.add(folder);
+		}		
+		return ret;
+	}
+	
+	private boolean toProcessFolder_(File folder) {
 		if (excludeFolderSet.contains(folder.getName())) {
 			return false;
 		}