From ae3b726a088a2c17b5a0752190cdfaee5e0ced27 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 16 Oct 2016 19:03:05 +0200 Subject: [PATCH] [FEATURE] Moved parts to internal API --- pom.xml | 11 +- src/main/java/org/parabot/Landing.java | 7 +- .../java/org/parabot/core/Directories.java | 329 +----------------- 3 files changed, 14 insertions(+), 333 deletions(-) diff --git a/pom.xml b/pom.xml index 93f444d..f4c1253 100755 --- a/pom.xml +++ b/pom.xml @@ -30,9 +30,9 @@ - git-parabot - Parabot's Git based repo - https://github.com/parabot/Maven-Repository/raw/master/ + parabot-maven + Parabot its Maven Repository + http://maven.parabot.org/ @@ -65,6 +65,11 @@ 4.11 provided + + org.parabot + internal-api + 1.02.7 + diff --git a/src/main/java/org/parabot/Landing.java b/src/main/java/org/parabot/Landing.java index 98d3dbc..4afc7f0 100644 --- a/src/main/java/org/parabot/Landing.java +++ b/src/main/java/org/parabot/Landing.java @@ -18,10 +18,10 @@ import java.io.IOException; import java.net.URI; /** - * Parabot v2.1 + * Parabot v2.6 * - * @author Everel/Parnassian/Clisprail, Paradox/JKetelaar, Matt, Dane - * @version 2.1 + * @author Everel, JKetelaar, Matt, Dane + * @version 2.6 * @see Homepage */ public final class Landing { @@ -60,6 +60,7 @@ public final class Landing { Core.verbose("Validating directories..."); Directories.validate(); + Core.verbose("Validating account manager..."); AccountManager.validate(); diff --git a/src/main/java/org/parabot/core/Directories.java b/src/main/java/org/parabot/core/Directories.java index d18ae07..15cd164 100644 --- a/src/main/java/org/parabot/core/Directories.java +++ b/src/main/java/org/parabot/core/Directories.java @@ -1,15 +1,5 @@ package org.parabot.core; -import org.json.simple.JSONObject; -import org.json.simple.parser.ParseException; -import org.parabot.environment.OperatingSystem; -import org.parabot.environment.api.utils.StringUtils; -import org.parabot.environment.api.utils.WebUtil; - -import javax.swing.*; -import java.io.*; -import java.util.*; - /** * Holds and manages Parabot's used directories * @@ -17,321 +7,6 @@ import java.util.*; * @author JKetelaar * @author Matt */ -public class Directories { - private static Map cached; - private static String tempDir; +public class Directories extends org.parabot.api.io.Directories { - static { - cached = new HashMap<>(); - switch (OperatingSystem.getOS()) { - case WINDOWS: - cached.put("Root", new JFileChooser().getFileSystemView().getDefaultDirectory()); - break; - default: - cached.put("Root", new File(System.getProperty("user.home"))); - } - - Core.verbose("Caching directories..."); - cached.put("Root", getDefaultDirectory()); - cached.put("Workspace", new File(cached.get("Root"), "/Parabot/")); - cached.put("Sources", new File(cached.get("Root"), "/Parabot/scripts/sources/")); - cached.put("Compiled", new File(cached.get("Root"), "/Parabot/scripts/compiled/")); - cached.put("Resources", new File(cached.get("Root"), "/Parabot/scripts/resources/")); - cached.put("Settings", new File(cached.get("Root"), "/Parabot/settings/")); - cached.put("Servers", new File(cached.get("Root"), "/Parabot/servers/")); - cached.put("Cache", new File(cached.get("Root"), "/Parabot/cache/")); - cached.put("Screenshots", new File(cached.get("Root"), "/Parabot/screenshots/")); - Core.verbose("Directories cached."); - - clearCache(259200); - if (Core.isSecure()) { - setHomeDirectory(); - } - } - - private static void setHomeDirectory(){ - File cache; - tempDir = StringUtils.randomString(12); - try { - if ((cache = new File(Directories.getSettingsPath(), "cache.json")).exists()){ - JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(new FileReader(cache)); - String temp; - if ((temp = (String) object.get("homedir")) != null){ - cached.put("Home", new File(cached.get("Root"), "/" + temp + "/")); - } - }else{ - cached.put("Home", createCacheDirectory(cache)); - } - } catch (IOException | ParseException ignored) { - cached.put("Home", new File(cached.get("Root"), "/" + tempDir + "/")); - } - if (!cached.get("Home").exists()) { - cached.get("Home").mkdirs(); - } - System.out.println("Set temporary cache directory to: " + cached.get("Home")); - } - - private static File createCacheDirectory(File cacheFile) throws IOException { - cacheFile.createNewFile(); - JSONObject object = new JSONObject(); - object.put("homedir", tempDir); - FileWriter file = new FileWriter(cacheFile); - file.write(object.toJSONString()); - file.flush(); - file.close(); - - File cacheDir = new File(cached.get("Root"), "/" + tempDir + "/"); - if (!cacheDir.exists()) { - cacheDir.mkdirs(); - } - - return cacheDir; - } - - /** - * Set script bin folder - * - * @param f - */ - public static void setScriptCompiledDirectory(File f) { - if (!f.isDirectory()) { - throw new IllegalArgumentException(f + "is not a directory."); - } - cached.put("Compiled", f); - } - - /** - * Set server bin folder - * - * @param f - */ - public static void setServerCompiledDirectory(File f) { - if (!f.isDirectory()) { - throw new IllegalArgumentException(f + "is not a directory."); - } - cached.put("Servers", f); - } - - - /** - * Returns the root directory outside of the main Parabot folder. - * - * @return - */ - public static File getDefaultDirectory() { - return cached.get("Root"); - } - - /** - * Returns the Parabot folder. - * - * @return - */ - public static File getWorkspace() { - return cached.get("Workspace"); - } - - /** - * Returns the script sources folder. - * - * @return - */ - public static File getScriptSourcesPath() { - return cached.get("Sources"); - } - - /** - * Returns the compiled scripts folder. - * - * @return - */ - public static File getScriptCompiledPath() { - return cached.get("Compiled"); - } - - /** - * Returns the scripts resources folder. - * - * @return - */ - public static File getResourcesPath() { - return cached.get("Resources"); - } - - /** - * Returns the Parabot settings folder. - * - * @return - */ - public static File getSettingsPath() { - return cached.get("Settings"); - } - - /** - * Returns the Parabot servers folder. - * - * @return - */ - public static File getServerPath() { - return cached.get("Servers"); - } - - /** - * Returns the Parabot cache folder. - * - * @return - */ - public static File getCachePath() { - return cached.get("Cache"); - } - - /** - * Returns the redirected Home Directory - * @return - */ - public static File getHomeDir() { - return cached.get("Home"); - } - - - /** - * Returns the screenshot folder. - * - * @return - */ - public static File getScreenshotDir() { - return cached.get("Screenshots"); - } - - /** - * Validates all directories and makes them if necessary - */ - public static void validate() { - final File defaultPath = getDefaultDirectory(); - if (defaultPath == null || !defaultPath.exists()) { - throw new RuntimeException("Default path not found"); - } - final Queue files = new LinkedList(); - files.addAll(cached.values()); - while (files.size() > 0) { - final File file = files.poll(); - if (!file.exists()) { - Core.verbose("Generating directory: " + file.getAbsolutePath()); - file.mkdirs(); - if (!file.exists()) { - System.err.println("Failed to make directory: " + file.getAbsolutePath()); - } - } - } - } - - private static File temp = null; - - public static File getTempDirectory() { - if (temp != null) { - return temp; - } - int randomNum = new Random().nextInt(999999999); - temp = new File(getResourcesPath(), randomNum + "/"); - temp.mkdirs(); - temp.deleteOnExit(); - return temp; - } - - /** - * Clears the cache based on the latest modification - * - * @param remove A long that represents the amount of seconds that a file may have since the latest modification - * @param force Defines if the cache folder, within user.home, should also be removed - */ - public static void clearCache(int remove, boolean force){ - File[] cache = getCachePath().listFiles(); - if (cache != null) { - for (File f : cache) { - if (f != null && System.currentTimeMillis() / 1000 - f.lastModified() / 1000 > remove) { - Core.verbose("Clearing " + f.getName() + " from cache..."); - f.delete(); - } - } - } - - if (force){ - File cacheFile; - - if ((cacheFile = new File(Directories.getSettingsPath(), "cache.json")).exists()){ - try { - JSONObject jsonObject = (JSONObject) WebUtil.getJsonParser().parse(new FileReader(cacheFile)); - if (jsonObject != null){ - Object dirObject; - if ((dirObject = jsonObject.get("homedir")) != null) { - String dir = (String) dirObject; - if (dir.length() > 0) { - File cacheDir = new File(cached.get("Root"), "/" + dir + "/"); - removeDirectory(cacheDir); - createCacheDirectory(cacheFile); - } - } - } - - } catch (IOException | ParseException e) { - e.printStackTrace(); - } - } - } - } - - private static void clearCache(int remove) { - clearCache(remove, false); - } - - public static void clearCache() { - clearCache(0, true); - } - - /** - * @param file Directory to be removed - */ - private static void removeDirectory(File file) { - if (file.isDirectory()) { - if (file.list().length == 0) { - file.delete(); - Core.verbose("Directory is deleted : " - + file.getAbsolutePath()); - } else { - String files[] = file.list(); - for (String temp : files) { - File fileDelete = new File(file, temp); - removeDirectory(fileDelete); - } - - if (file.list().length == 0) { - file.delete(); - Core.verbose("Directory is deleted : " - + file.getAbsolutePath()); - } - } - } else { - file.delete(); - Core.verbose("File is deleted : " + file.getAbsolutePath()); - } - } - - /** - * Returns an array of files with from a given directory and a given extension - * - * @param directory The directory where should be searched - * @param extension The extension to be searched for, including the dot (like .json) - * @return An array of of files that match the request - */ - public static File[] listFilesWithExtension(File directory, final String extension){ - return directory.listFiles(new FilenameFilter() { - public boolean accept(File dir, String filename) { - return filename.endsWith(extension); - } - }); - } - - public static File[] listJSONFiles(File directory) { - return listFilesWithExtension(directory, ".json"); - } -} +} \ No newline at end of file