001/** 002 * Copyright 2010-2014 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.common.util.execute; 017 018import java.io.File; 019import java.util.List; 020import java.util.Properties; 021 022import org.kuali.common.util.CollectionUtils; 023import org.kuali.common.util.ComparisonResults; 024import org.kuali.common.util.LocationUtils; 025import org.kuali.common.util.PropertyUtils; 026import org.kuali.common.util.SimpleScanner; 027import org.slf4j.Logger; 028import org.slf4j.LoggerFactory; 029import org.springframework.util.Assert; 030 031/** 032 * This executable compares the files found by the given pattern in two different locations and populates a properties object with information about the comparison 033 * 034 * @author andrewlubbers 035 * 036 * @deprecated 037 */ 038@Deprecated 039public class FileListComparisonExecutable implements Executable { 040 041 private static final Logger logger = LoggerFactory.getLogger(FileListComparisonExecutable.class); 042 043 private String newFilesBaseDir; 044 private String filePattern; 045 private String originalFilesBaseDir; 046 private List<String> propertyNames; 047 private Properties mavenProperties; 048 049 @Override 050 public void execute() { 051 Assert.notNull(mavenProperties); 052 Assert.notNull(propertyNames); 053 Assert.notNull(newFilesBaseDir); 054 Assert.notNull(originalFilesBaseDir); 055 Assert.notNull(filePattern); 056 057 logger.info("Starting File List Comparison"); 058 logger.info("Original files dir: " + originalFilesBaseDir); 059 logger.info("New files dir: " + LocationUtils.getCanonicalPath(new File(newFilesBaseDir))); 060 logger.info("File pattern: " + filePattern); 061 logger.info("Property names: " + propertyNames); 062 063 List<String> filePatterns = CollectionUtils.getTrimmedListFromCSV(filePattern); 064 String[] includesArray = filePatterns.toArray(new String[filePatterns.size()]); 065 066 SimpleScanner scanner = new SimpleScanner(); 067 scanner.setBasedir(newFilesBaseDir); 068 scanner.setIncludes(includesArray); 069 070 List<String> newLocations = LocationUtils.getAbsolutePaths(scanner.getFiles()); 071 List<String> newFileNames = LocationUtils.getFilenames(newLocations); 072 073 scanner = new SimpleScanner(); 074 scanner.setBasedir(originalFilesBaseDir); 075 scanner.setIncludes(includesArray); 076 077 List<String> originalLocations = LocationUtils.getAbsolutePaths(scanner.getFiles()); 078 List<String> originalFileNames = LocationUtils.getFilenames(originalLocations); 079 080 ComparisonResults comparison = LocationUtils.getLocationListComparison(newFileNames, originalFileNames); 081 082 logger.info("Added {} files.", comparison.getAdded().size()); 083 logger.info("Updated {} existing files.", comparison.getSame().size()); 084 logger.info("Deleted {} files.", comparison.getDeleted().size()); 085 086 PropertyUtils.addListComparisonProperties(mavenProperties, comparison, propertyNames); 087 } 088 089 public String getFilePattern() { 090 return filePattern; 091 } 092 093 public void setFilePattern(String filePattern) { 094 this.filePattern = filePattern; 095 } 096 097 public Properties getMavenProperties() { 098 return mavenProperties; 099 } 100 101 public void setMavenProperties(Properties mavenProperties) { 102 this.mavenProperties = mavenProperties; 103 } 104 105 public String getNewFilesBaseDir() { 106 return newFilesBaseDir; 107 } 108 109 public void setNewFilesBaseDir(String newFilesBaseDir) { 110 this.newFilesBaseDir = newFilesBaseDir; 111 } 112 113 public String getOriginalFilesBaseDir() { 114 return originalFilesBaseDir; 115 } 116 117 public void setOriginalFilesBaseDir(String originalFilesBaseDir) { 118 this.originalFilesBaseDir = originalFilesBaseDir; 119 } 120 121 public List<String> getPropertyNames() { 122 return propertyNames; 123 } 124 125 public void setPropertyNames(List<String> propertyNames) { 126 this.propertyNames = propertyNames; 127 } 128}