From d8fe269327a1a51f2588a3573a4764613da16388 Mon Sep 17 00:00:00 2001 From: Trumeet Date: Tue, 26 Jul 2022 19:06:11 -0700 Subject: Move the mod to mod/ --- .../java/moe/ymc/acron/config/json/Client.java | 45 --------- .../java/moe/ymc/acron/config/json/Config.java | 103 --------------------- .../json/ConfigDeserializationException.java | 18 ---- .../ymc/acron/config/json/ConfigDeserializer.java | 27 ------ .../ymc/acron/config/json/ConfigJsonObject.java | 7 -- src/main/java/moe/ymc/acron/config/json/Rule.java | 35 ------- 6 files changed, 235 deletions(-) delete mode 100644 src/main/java/moe/ymc/acron/config/json/Client.java delete mode 100644 src/main/java/moe/ymc/acron/config/json/Config.java delete mode 100644 src/main/java/moe/ymc/acron/config/json/ConfigDeserializationException.java delete mode 100644 src/main/java/moe/ymc/acron/config/json/ConfigDeserializer.java delete mode 100644 src/main/java/moe/ymc/acron/config/json/ConfigJsonObject.java delete mode 100644 src/main/java/moe/ymc/acron/config/json/Rule.java (limited to 'src/main/java/moe/ymc/acron/config/json') diff --git a/src/main/java/moe/ymc/acron/config/json/Client.java b/src/main/java/moe/ymc/acron/config/json/Client.java deleted file mode 100644 index 4d31308..0000000 --- a/src/main/java/moe/ymc/acron/config/json/Client.java +++ /dev/null @@ -1,45 +0,0 @@ -package moe.ymc.acron.config.json; - -import com.google.gson.annotations.SerializedName; -import moe.ymc.acron.auth.Action; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -class Client implements ConfigJsonObject { - @SerializedName("id") - private final String id; - - @SerializedName("token") - private final String token; - - @SerializedName("policy_mode") - private final Action policyMode; - - @SerializedName("rules") - private final List rules; - - private Client(String id, - String token, - Action policyMode, - List rules) { - this.id = id; - this.token = token; - this.policyMode = policyMode; - this.rules = rules; - } - - @Override - public @NotNull moe.ymc.acron.auth.Client create(boolean startup) throws ConfigDeserializationException { - if (id == null || id.trim().equals("") || - token == null || token.trim().equals("")) { - throw new ConfigDeserializationException(".clients[].id or .clients[].token is not supplied."); - } - return new moe.ymc.acron.auth.Client(id, - token, - policyMode == null ? Action.DENY : policyMode, - rules == null ? new moe.ymc.acron.auth.Rule[]{} : - rules.stream().map(rule -> rule.create(startup)).toList() - .toArray(new moe.ymc.acron.auth.Rule[rules.size()])); - } -} diff --git a/src/main/java/moe/ymc/acron/config/json/Config.java b/src/main/java/moe/ymc/acron/config/json/Config.java deleted file mode 100644 index e8c5a83..0000000 --- a/src/main/java/moe/ymc/acron/config/json/Config.java +++ /dev/null @@ -1,103 +0,0 @@ -package moe.ymc.acron.config.json; - -import com.google.gson.annotations.SerializedName; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -class Config implements ConfigJsonObject { - private static final Logger LOGGER = LogManager.getLogger(); - - @SerializedName("listen") - private final String listen; - - @SerializedName("port") - private final Integer port; - - @SerializedName("native_transport") - private final boolean nativeTransport; - - @SerializedName("clients") - private final List clients; - - private Config(String listen, - Integer port, - boolean nativeTransport, - List clients) { - this.listen = listen; - this.port = port; - this.nativeTransport = nativeTransport; - this.clients = clients; - } - - @Override - public @NotNull moe.ymc.acron.config.Config create(boolean startup) throws ConfigDeserializationException { - final InetAddress address; - final int p; - final boolean nt; - if (!startup) { - address = moe.ymc.acron.config.Config.getGlobalConfig().address(); - p = moe.ymc.acron.config.Config.getGlobalConfig().port(); - nt = moe.ymc.acron.config.Config.getGlobalConfig().useNativeTransport(); - } else { - if (listen == null || listen.trim().equals("")) { - address = InetAddress.getLoopbackAddress(); - } else { - try { - address = InetAddress.getByName(listen); - } catch (UnknownHostException e) { - throw new ConfigDeserializationException("Cannot parse address: " + e.getMessage(), - true); - } - } - if (port == null) { - p = 25575; - } else { - if (port < 0 || port > 65535) { - throw new ConfigDeserializationException("The port is out of range.", true); - } - p = port; - } - nt = nativeTransport; - } - - - Map map; - try { - if (clients != null) { - map = clients.stream() - .collect(Collectors. - toMap(client -> client.create(startup).id(), - client -> client.create(startup))); - } else { - map = new HashMap<>(0); - } - } catch (IllegalStateException e) { - // Collision. - LOGGER.error("Duplicate clients with the same ID in the Acron configuration. All clients are ignored. " + - "Fix the configuration and reload.", e); - if (!startup) { - throw new ConfigDeserializationException("Duplicate clients with the same ID: " + e.getMessage()); - } - map = new HashMap<>(0); - } catch (ConfigDeserializationException e) { - LOGGER.error("Cannot parse the Acron configuration. All clients are ignored. " + - "Fix the configuration and reload.", e); - if (!startup) { - throw e; - } - map = new HashMap<>(0); - } - return new moe.ymc.acron.config.Config(address, - p, - nt, - map); - } -} diff --git a/src/main/java/moe/ymc/acron/config/json/ConfigDeserializationException.java b/src/main/java/moe/ymc/acron/config/json/ConfigDeserializationException.java deleted file mode 100644 index baf5b35..0000000 --- a/src/main/java/moe/ymc/acron/config/json/ConfigDeserializationException.java +++ /dev/null @@ -1,18 +0,0 @@ -package moe.ymc.acron.config.json; - -public class ConfigDeserializationException extends RuntimeException { - private final boolean fetal; - - public ConfigDeserializationException(String message) { - this(message, false); - } - - public ConfigDeserializationException(String message, boolean fetal) { - super(message); - this.fetal = fetal; - } - - public boolean isFetal() { - return fetal; - } -} diff --git a/src/main/java/moe/ymc/acron/config/json/ConfigDeserializer.java b/src/main/java/moe/ymc/acron/config/json/ConfigDeserializer.java deleted file mode 100644 index e91b355..0000000 --- a/src/main/java/moe/ymc/acron/config/json/ConfigDeserializer.java +++ /dev/null @@ -1,27 +0,0 @@ -package moe.ymc.acron.config.json; - -import com.google.gson.Gson; -import moe.ymc.acron.config.Config; -import org.jetbrains.annotations.NotNull; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; - -public class ConfigDeserializer { - public static @NotNull Config deserialize(@NotNull File file, boolean startup) - throws ConfigDeserializationException, IOException { - final Reader reader = new FileReader(file); - final moe.ymc.acron.config.json.Config config; - try { - config = new Gson() - .fromJson(reader, moe.ymc.acron.config.json.Config.class); - } catch (Throwable e) { - throw new ConfigDeserializationException("Cannot parse JSON: " + e.getMessage(), - true); - } - reader.close(); - return config.create(startup); - } -} diff --git a/src/main/java/moe/ymc/acron/config/json/ConfigJsonObject.java b/src/main/java/moe/ymc/acron/config/json/ConfigJsonObject.java deleted file mode 100644 index 0efd9a9..0000000 --- a/src/main/java/moe/ymc/acron/config/json/ConfigJsonObject.java +++ /dev/null @@ -1,7 +0,0 @@ -package moe.ymc.acron.config.json; - -import org.jetbrains.annotations.NotNull; - -public interface ConfigJsonObject { - @NotNull T create(boolean startup) throws ConfigDeserializationException; -} diff --git a/src/main/java/moe/ymc/acron/config/json/Rule.java b/src/main/java/moe/ymc/acron/config/json/Rule.java deleted file mode 100644 index 114e17d..0000000 --- a/src/main/java/moe/ymc/acron/config/json/Rule.java +++ /dev/null @@ -1,35 +0,0 @@ -package moe.ymc.acron.config.json; - -import com.google.gson.annotations.SerializedName; -import moe.ymc.acron.auth.Action; -import org.jetbrains.annotations.NotNull; - -import java.util.regex.Pattern; - -class Rule implements ConfigJsonObject { - @SerializedName("regex") - private final String regex; - - @SerializedName("action") - private final Action action; - - @SerializedName("display") - private final boolean display; - - private Rule(String regex, - Action action, - boolean display) { - this.regex = regex; - this.action = action; - this.display = display; - } - - public @NotNull moe.ymc.acron.auth.Rule create(boolean startup) throws ConfigDeserializationException { - if (regex == null || regex.trim().equals("") || - action == null) throw new ConfigDeserializationException(".clients.[]rules.regex or .clients.[]rules.action is" + - "not specified."); - return new moe.ymc.acron.auth.Rule(Pattern.compile(regex), - action, - display); - } -} -- cgit v1.2.3