Changeset 0eb04fac


Ignore:
Timestamp:
Mar 5, 2018 1:16:04 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
665f58d
Parents:
2892382
Message:

Util: Consolidate FileFilters?

Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java

    r2892382 r0eb04fac  
    3535import net.i2p.update.*;
    3636import net.i2p.util.ConcurrentHashSet;
     37import net.i2p.util.FileSuffixFilter;
    3738import net.i2p.util.FileUtil;
    3839import net.i2p.util.I2PAppThread;
     
    25782579    private boolean monitorTorrents(File dir) {
    25792580        boolean rv = true;
    2580         String fileNames[] = dir.list(TorrentFilenameFilter.instance());
     2581        File files[] = dir.listFiles(new FileSuffixFilter(".torrent"));
    25812582        List<String> foundNames = new ArrayList<String>(0);
    2582         if (fileNames != null) {
    2583             for (int i = 0; i < fileNames.length; i++) {
     2583        if (files != null) {
     2584            for (int i = 0; i < files.length; i++) {
    25842585                try {
    2585                     foundNames.add(new File(dir, fileNames[i]).getCanonicalPath());
     2586                    foundNames.add(files[i].getCanonicalPath());
    25862587                } catch (IOException ioe) {
    2587                     _log.error("Error resolving '" + fileNames[i] + "' in '" + dir, ioe);
     2588                    _log.error("Error resolving '" + files[i] + "' in '" + dir, ioe);
    25882589                }
    25892590            }
     
    27302731        _config.setProperty(PROP_TRACKERS, buf.toString());
    27312732        saveConfig();
    2732     }
    2733 
    2734     private static class TorrentFilenameFilter implements FilenameFilter {
    2735         private static final TorrentFilenameFilter _filter = new TorrentFilenameFilter();
    2736         public static TorrentFilenameFilter instance() { return _filter; }
    2737         public boolean accept(File dir, String name) {
    2738             return (name != null) && (name.endsWith(".torrent"));
    2739         }
    27402733    }
    27412734
  • apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java

    r2892382 r0eb04fac  
    2020import net.i2p.data.Hash;
    2121import net.i2p.util.Log;
     22import net.i2p.util.FileSuffixFilter;
    2223import net.i2p.util.SecureDirectory;
    2324import net.i2p.util.SecureFileOutputStream;
     
    99100        File dir = new File(ctx.getConfigDir(), DIR);
    100101        List<NewsEntry> rv = new ArrayList<NewsEntry>();
    101         File[] files = dir.listFiles();
     102        File[] files = dir.listFiles(new FileSuffixFilter(PFX, SFX));
    102103        if (files == null)
    103104            return rv;
    104105        for (File file : files) {
    105106            String name = file.getName();
    106             if (!name.startsWith(PFX) || !name.endsWith(SFX))
    107                 continue;
    108107            XMLParser parser = new XMLParser(ctx);
    109108            InputStream in = null;
  • apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java

    r2892382 r0eb04fac  
    3131import static net.i2p.update.UpdateType.*;
    3232import net.i2p.util.ConcurrentHashSet;
     33import net.i2p.util.FileSuffixFilter;
    3334import net.i2p.util.FileUtil;
    3435import net.i2p.util.I2PAppThread;
     
    416417            Properties wprops = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
    417418            File webappDir = new File(consoleDir, "webapps");
    418             String fileNames[] = webappDir.list(RouterConsoleRunner.WarFilenameFilter.instance());
    419             if (fileNames != null) {
     419            File files[] = webappDir.listFiles(RouterConsoleRunner.WAR_FILTER);
     420            if (files != null) {
    420421                if(!pluginWars.containsKey(appName))
    421422                    pluginWars.put(appName, new ConcurrentHashSet<String>());
    422                 for (int i = 0; i < fileNames.length; i++) {
     423                for (int i = 0; i < files.length; i++) {
    423424                    try {
    424                         String warName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
     425                        String warName = files[i].getName();
     426                        warName = warName.substring(0, warName.lastIndexOf(".war"));
    425427                        //log.error("Found webapp: " + warName);
    426428                        // check for duplicates in $I2P
     
    433435                            if (log.shouldLog(Log.INFO))
    434436                                log.info("Starting webapp: " + warName);
    435                             String path = new File(webappDir, fileNames[i]).getCanonicalPath();
     437                            String path = files[i].getCanonicalPath();
    436438                            WebAppStarter.startWebApp(ctx, server, warName, path);
    437439                            pluginWars.get(appName).add(warName);
    438440                        }
    439441                    } catch (IOException ioe) {
    440                         log.error("Error resolving '" + fileNames[i] + "' in '" + webappDir, ioe);
     442                        log.error("Error resolving '" + files[i] + "' in '" + webappDir, ioe);
    441443                    }
    442444                }
     
    461463        File localeDir = new File(pluginDir, "console/locale");
    462464        if (localeDir.exists() && localeDir.isDirectory()) {
    463             File[] files = localeDir.listFiles();
     465            File[] files = localeDir.listFiles(new FileSuffixFilter(".jar"));
    464466            if (files != null) {
    465467                boolean added = false;
    466468                for (int i = 0; i < files.length; i++) {
    467469                    File f = files[i];
    468                     if (f.getName().endsWith(".jar")) {
    469                         try {
    470                             addPath(f.toURI().toURL());
    471                             log.info("INFO: Adding translation plugin to classpath: " + f);
    472                             added = true;
    473                         } catch (ClassCastException e) {
    474                             log.logAlways(Log.WARN, "Java version: " + System.getProperty("java.version") +
    475                                                     " does not support adding classpath element: " + f +
    476                                                     " for plugin " + appName);
    477                         } catch (RuntimeException e) {
    478                             log.error("Plugin " + appName + " bad classpath element: " + f, e);
    479                         }
     470                    try {
     471                        addPath(f.toURI().toURL());
     472                        log.info("INFO: Adding translation plugin to classpath: " + f);
     473                        added = true;
     474                    } catch (ClassCastException e) {
     475                        log.logAlways(Log.WARN, "Java version: " + System.getProperty("java.version") +
     476                                                " does not support adding classpath element: " + f +
     477                                                " for plugin " + appName);
     478                    } catch (RuntimeException e) {
     479                        log.error("Plugin " + appName + " bad classpath element: " + f, e);
    480480                    }
    481481                }
  • apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java

    r2892382 r0eb04fac  
    33import java.awt.GraphicsEnvironment;
    44import java.io.File;
    5 import java.io.FilenameFilter;
     5import java.io.FileFilter;
    66import java.io.IOException;
    77import java.io.Serializable;
     
    3636import net.i2p.router.update.ConsoleUpdateManager;
    3737import net.i2p.util.Addresses;
     38import net.i2p.util.FileSuffixFilter;
    3839import net.i2p.util.FileUtil;
    3940import net.i2p.util.I2PAppThread;
     
    141142    public static final String PROP_DTG_ENABLED = "desktopgui.enabled";
    142143    static final String PROP_ALLOWED_HOSTS = "routerconsole.allowedHosts";
     144    /** @since 0.9.34 */
     145    static final FileFilter WAR_FILTER = new WarFilenameFilter();
    143146
    144147    /**
     
    764767        if (_server.isRunning()) {
    765768            File dir = new File(_webAppsDir);
    766             String fileNames[] = dir.list(WarFilenameFilter.instance());
    767             if (fileNames != null) {
    768                 for (int i = 0; i < fileNames.length; i++) {
    769                     String appName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
     769            File files[] = dir.listFiles(WAR_FILTER);
     770            if (files != null) {
     771                for (int i = 0; i < files.length; i++) {
     772                    String appName = files[i].getName();
     773                    appName = appName.substring(0, appName.lastIndexOf(".war"));
    770774                    String enabled = props.getProperty(PREFIX + appName + ENABLED);
    771775                    if (appName.equals("addressbook")) {
     
    777781                    } else if (! "false".equals(enabled)) {
    778782                        try {
    779                             String path = new File(dir, fileNames[i]).getCanonicalPath();
     783                            String path = files[i].getCanonicalPath();
    780784                            WebAppStarter.startWebApp(_context, chColl, appName, path);
    781785                            if (enabled == null) {
     
    11161120    }
    11171121
    1118     static class WarFilenameFilter implements FilenameFilter {
    1119         private static final WarFilenameFilter _filter = new WarFilenameFilter();
    1120         public static WarFilenameFilter instance() { return _filter; }
    1121         public boolean accept(File dir, String name) {
    1122             return (name != null) && (name.endsWith(".war") && !name.equals(ROUTERCONSOLE + ".war"));
     1122    private static class WarFilenameFilter extends FileSuffixFilter {
     1123        private static final String RCWAR = ROUTERCONSOLE + ".war";
     1124
     1125        public WarFilenameFilter() { super(".war"); }
     1126
     1127        public boolean accept(File file) {
     1128            return super.accept(file) && !file.getName().equals(RCWAR);
    11231129        }
    11241130    }
  • apps/routerconsole/java/src/net/i2p/router/web/WebAppConfiguration.java

    r2892382 r0eb04fac  
    1515
    1616import net.i2p.I2PAppContext;
     17import net.i2p.util.FileSuffixFilter;
    1718
    1819import org.apache.tomcat.SimpleInstanceManager;
     
    181182            // except addressbook.jar
    182183            File libDir = new File(ctx.getBaseDir(), "lib");
    183             File[] files = libDir.listFiles();
     184            File[] files = libDir.listFiles(new FileSuffixFilter(".jar"));
    184185            if (files != null) {
    185186                for (int i = 0; i < files.length; i++) {
    186187                    String name = files[i].getName();
    187                     if (name.endsWith(".jar") && !name.equals("addressbook.jar"))
     188                    if (!name.equals("addressbook.jar"))
    188189                        rv.add(files[i].toURI());
    189190                }
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/CertHelper.java

    r2892382 r0eb04fac  
    66import net.i2p.data.DataHelper;
    77import net.i2p.util.FileUtil;
     8import net.i2p.util.FileSuffixFilter;
    89import net.i2p.router.crypto.FamilyKeyCrypto;
    910import net.i2p.router.web.HelperBase;
     
    3839            File tunnelDir = new File(_context.getConfigDir(), I2PTUNNEL_DIR);
    3940            boolean hasTunnels = false;
    40             File[] tunnels = tunnelDir.listFiles();
     41            File[] tunnels = tunnelDir.listFiles(new FileSuffixFilter("i2ptunnel-", ".local.crt"));
    4142            if (tunnels != null) {
    4243                for (int i = 0; i < tunnels.length; i++) {
    4344                    File f = tunnels[i];
    44                     if (!f.isFile())
    45                         continue;
    4645                    String name = f.getName();
    47                     if (!name.endsWith(".local.crt"))
    48                         continue;
    49                     if (!name.startsWith("i2ptunnel-"))
    50                         continue;
    5146                    String b32 = name.substring(10, name.length() - 10);
    5247                    output(_t("I2PTunnel") + ' ' + b32, f);
     
    6055            tunnelDir = new File(dir, SAM_DIR);
    6156            hasTunnels = false;
    62             tunnels = tunnelDir.listFiles();
     57            tunnels = tunnelDir.listFiles(new FileSuffixFilter("sam-", ".local.crt"));
    6358            if (tunnels != null) {
    6459                for (int i = 0; i < tunnels.length; i++) {
    6560                    File f = tunnels[i];
    66                     if (!f.isFile())
    67                         continue;
    68                     String name = f.getName();
    69                     if (!name.endsWith(".local.crt"))
    70                         continue;
    71                     if (!name.startsWith("sam-"))
    72                         continue;
    7361                    output("SAM", f);
    7462                    hasTunnels = true;
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/FileDumpHelper.java

    r2892382 r0eb04fac  
    2121import net.i2p.router.web.HelperBase;
    2222import net.i2p.router.web.PluginStarter;
     23import net.i2p.util.FileSuffixFilter;
    2324import net.i2p.util.FileUtil;
    2425import net.i2p.util.SystemVersion;
     
    9899
    99100    private static void dumpDir(StringBuilder buf, File dir, String suffix) {
    100         File[] files = dir.listFiles();
     101        File[] files = dir.listFiles(new FileSuffixFilter(suffix));
    101102        if (files == null)
    102103            return;
    103104        Arrays.sort(files);
    104105        for (int i = 0; i < files.length; i++) {
    105             if (files[i].getName().endsWith(suffix))
    106                 dumpFile(buf, files[i]);
     106            dumpFile(buf, files[i]);
    107107        }
    108108    }
  • apps/susimail/src/src/i2p/susi/webmail/PersistentMailCache.java

    r2892382 r0eb04fac  
    3232import net.i2p.data.Base64;
    3333import net.i2p.data.DataHelper;
     34import net.i2p.util.FileSuffixFilter;
    3435import net.i2p.util.I2PAppThread;
    3536import net.i2p.util.PasswordManager;
     
    384385                File importDir = new File(_cacheDir.getParentFile(), DIR_IMPORT);
    385386                if (importDir.exists() && importDir.isDirectory()) {
    386                         File[] files = importDir.listFiles();
     387                        File[] files = importDir.listFiles(new FileSuffixFilter(".eml"));
    387388                        if (files == null)
    388389                                return;
    389390                        for (int i = 0; i < files.length; i++) {
    390391                                File f = files[i];
    391                                 if (!f.isFile())
    392                                         continue;
    393                                 if (!f.getName().toLowerCase(Locale.US).endsWith(".eml"))
    394                                         continue;
    395392                                // Read in the headers to get the X-UIDL that Thunderbird stuck in there
    396393                                String uidl = Long.toString(_context.random().nextLong());
  • core/java/src/net/i2p/crypto/CertUtil.java

    r2892382 r0eb04fac  
    4141import net.i2p.data.DataHelper;
    4242import net.i2p.util.Log;
     43import net.i2p.util.FileSuffixFilter;
    4344import net.i2p.util.SecureFileOutputStream;
    4445import net.i2p.util.SystemVersion;
     
    487488    private static void loadCRLs(Set<X509CRL> crls, File dir) {
    488489        if (dir.exists() && dir.isDirectory()) {
    489             File[] files = dir.listFiles();
     490            File[] files = dir.listFiles(new FileSuffixFilter(".crl"));
    490491            if (files != null) {
    491492                for (int i = 0; i < files.length; i++) {
    492493                    File f = files[i];
    493                     if (!f.isFile())
    494                         continue;
    495                     if (f.getName().endsWith(".crl")) {
    496                         try {
    497                             X509CRL crl = loadCRL(f);
    498                             crls.add(crl);
    499                         } catch (IOException ioe) {
    500                             error("Cannot load CRL from " + f, ioe);
    501                         } catch (GeneralSecurityException crle) {
    502                             error("Cannot load CRL from " + f, crle);
    503                         }
     494                    try {
     495                        X509CRL crl = loadCRL(f);
     496                        crls.add(crl);
     497                    } catch (IOException ioe) {
     498                        error("Cannot load CRL from " + f, ioe);
     499                    } catch (GeneralSecurityException crle) {
     500                        error("Cannot load CRL from " + f, crle);
    504501                    }
    505502                }
  • installer/tools/java/src/net/i2p/router/networkdb/kademlia/BundleRouterInfos.java

    r2892382 r0eb04fac  
    124124        for (int j = 0; j < Base64.ALPHABET_I2P.length(); j++) {
    125125            File subdir = new File(dbDir, PersistentDataStore.DIR_PREFIX + Base64.ALPHABET_I2P.charAt(j));
    126             File[] files = subdir.listFiles(PersistentDataStore.RouterInfoFilter.getInstance());
     126            File[] files = subdir.listFiles(PersistentDataStore.RI_FILTER);
    127127            if (files == null)
    128128                continue;
  • router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java

    r2892382 r0eb04fac  
    1212import java.io.BufferedOutputStream;
    1313import java.io.File;
     14import java.io.FileFilter;
    1415import java.io.FileInputStream;
    15 import java.io.FilenameFilter;
    1616import java.io.Flushable;
    1717import java.io.IOException;
     
    3535import net.i2p.router.Router;
    3636import net.i2p.router.RouterContext;
     37import net.i2p.util.FileSuffixFilter;
    3738import net.i2p.util.FileUtil;
    3839import net.i2p.util.I2PThread;
     
    6162    static final String DIR_PREFIX = "r";
    6263    private static final String B64 = Base64.ALPHABET_I2P;
    63    
     64
    6465    /**
    6566     *  @param dbDir relative path
     
    393394            int routerCount = 0;
    394395
    395             File routerInfoFiles[] = _dbDir.listFiles(RouterInfoFilter.getInstance());
     396            File routerInfoFiles[] = _dbDir.listFiles(RI_FILTER);
    396397            if (_flat) {
    397398                if (routerInfoFiles != null) {
     
    422423                for (int j = 0; j < B64.length(); j++) {
    423424                    File subdir = new File(_dbDir, DIR_PREFIX + B64.charAt(j));
    424                     File[] files = subdir.listFiles(RouterInfoFilter.getInstance());
     425                    File[] files = subdir.listFiles(RI_FILTER);
    425426                    if (files == null)
    426427                        continue;
     
    584585                    subdir.mkdir();
    585586            }
    586             File routerInfoFiles[] = f.listFiles(RouterInfoFilter.getInstance());
     587            File routerInfoFiles[] = f.listFiles(RI_FILTER);
    587588            if (routerInfoFiles != null)
    588589                migrate(f, routerInfoFiles);
     
    598599        for (int j = 0; j < B64.length(); j++) {
    599600            File subdir = new File(dbdir, DIR_PREFIX + B64.charAt(j));
    600             File[] files = subdir.listFiles(RouterInfoFilter.getInstance());
     601            File[] files = subdir.listFiles(RI_FILTER);
    601602            if (files == null)
    602603                continue;
     
    628629    private final static String ROUTERINFO_PREFIX = "routerInfo-";
    629630    private final static String ROUTERINFO_SUFFIX = ".dat";
     631
     632    /** @since 0.9.34 */
     633    public static final FileFilter RI_FILTER = new FileSuffixFilter(ROUTERINFO_PREFIX, ROUTERINFO_SUFFIX);
    630634   
    631635    private static String getLeaseSetName(Hash hash) {
     
    694698        }
    695699    }
    696    
    697     static class RouterInfoFilter implements FilenameFilter {
    698         private static final FilenameFilter _instance = new RouterInfoFilter();
    699         public static final FilenameFilter getInstance() { return _instance; }
    700         public boolean accept(File dir, String name) {
    701             if (name == null) return false;
    702             name = name.toUpperCase(Locale.US);
    703             return (name.startsWith(ROUTERINFO_PREFIX.toUpperCase(Locale.US)) && name.endsWith(ROUTERINFO_SUFFIX.toUpperCase(Locale.US)));
    704         }
    705     }
    706700}
Note: See TracChangeset for help on using the changeset viewer.