Move ANSI-related stuff into 'ansi' module
This commit is contained in:
parent
2d61b027b3
commit
9dc0f549d4
17 changed files with 340 additions and 52 deletions
135
ansi/build.gradle
Normal file
135
ansi/build.gradle
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* STAROPENSOURCE ENGINE SOURCE FILE
|
||||||
|
* Copyright (c) 2024 The StarOpenSource Engine Contributors
|
||||||
|
* Licensed under the GNU Affero General Public License v3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.nio.file.Files
|
||||||
|
// Plugins
|
||||||
|
plugins {
|
||||||
|
id("java")
|
||||||
|
id("io.freefair.lombok") version("${pluginLombok}")
|
||||||
|
id("maven-publish")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Project dependencies
|
||||||
|
dependencies {
|
||||||
|
// -> Runtime <-
|
||||||
|
// Lombok
|
||||||
|
compileOnly("org.projectlombok:lombok:${dependencyLombok}")
|
||||||
|
annotationProcessor("org.projectlombok:lombok:${dependencyLombok}")
|
||||||
|
|
||||||
|
// JetBrains Annotations
|
||||||
|
compileOnly("org.jetbrains:annotations:${dependencyJetbrainsAnnotations}")
|
||||||
|
|
||||||
|
// ANSI support
|
||||||
|
implementation("org.fusesource.jansi:jansi:${dependencyJansi}")
|
||||||
|
|
||||||
|
// Project
|
||||||
|
implementation(project(":base"))
|
||||||
|
|
||||||
|
// -> Testing <-
|
||||||
|
// Jetbrains Annotations
|
||||||
|
testCompileOnly("org.jetbrains:annotations:${dependencyJetbrainsAnnotations}")
|
||||||
|
|
||||||
|
// JUnit
|
||||||
|
testImplementation(platform("org.junit:junit-bom:${dependencyJunit}"))
|
||||||
|
testImplementation("org.junit.jupiter:junit-jupiter")
|
||||||
|
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix delombok task
|
||||||
|
delombok.doFirst {
|
||||||
|
File target = file("${project.projectDir}/src/main/module-info.java")
|
||||||
|
File source = file("${project.projectDir}/src/main/java/module-info.java")
|
||||||
|
|
||||||
|
target.delete()
|
||||||
|
source.renameTo(target)
|
||||||
|
}
|
||||||
|
delombok.doLast {
|
||||||
|
File target = file("${project.projectDir}/src/main/java/module-info.java")
|
||||||
|
File source = file("${project.projectDir}/src/main/module-info.java")
|
||||||
|
|
||||||
|
target.delete()
|
||||||
|
source.renameTo(target)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Javadoc configuration
|
||||||
|
javadoc {
|
||||||
|
outputs.upToDateWhen { false } // Force task execution
|
||||||
|
dependsOn(delombok) // Make sure the source is delomboked first
|
||||||
|
|
||||||
|
javadoc {
|
||||||
|
setClasspath(files(project.sourceSets.main.compileClasspath)) // Include dependencies
|
||||||
|
|
||||||
|
options {
|
||||||
|
if (new File(projectDir, "src/main/javadoc/theme.css").exists())
|
||||||
|
stylesheetFile = new File(projectDir, "src/main/javadoc/theme.css") // Theming is cool :3
|
||||||
|
setMemberLevel(JavadocMemberLevel.PUBLIC) // Only display public stuff
|
||||||
|
setOverview("src/main/javadoc/overview.html") // We want a custom overview page to greet the visitor
|
||||||
|
setLocale("en_US") // 你好
|
||||||
|
|
||||||
|
setJFlags([
|
||||||
|
"-Duser.language=en_US" // See above
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unit testing configuration
|
||||||
|
test {
|
||||||
|
useJUnitPlatform()
|
||||||
|
|
||||||
|
setMaxParallelForks(project.hasProperty("jobs") ? Integer.parseInt((String) project.property("jobs")) : 8)
|
||||||
|
setForkEvery(1)
|
||||||
|
setFailFast(true)
|
||||||
|
|
||||||
|
testLogging {
|
||||||
|
events("passed", "skipped", "failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include javadoc and source jar during publishing
|
||||||
|
java {
|
||||||
|
withJavadocJar()
|
||||||
|
withSourcesJar()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build publishing configuration
|
||||||
|
// Note: You can safely ignore any errors or warnings thrown by your IDE here
|
||||||
|
publishing {
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
name = "staropensource"
|
||||||
|
url = uri("https://mvn.staropensource.de/sosengine")
|
||||||
|
credentials(org.gradle.api.credentials.PasswordCredentials)
|
||||||
|
authentication {
|
||||||
|
//noinspection GroovyAssignabilityCheck
|
||||||
|
basic (BasicAuthentication)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
publications {
|
||||||
|
//noinspection GroovyAssignabilityCheck
|
||||||
|
maven (MavenPublication) {
|
||||||
|
groupId = group
|
||||||
|
artifactId = "ansi"
|
||||||
|
version = version
|
||||||
|
//noinspection GroovyAssignabilityCheck
|
||||||
|
from components.java
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
ansi/gradle
Symbolic link
1
ansi/gradle
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../gradle
|
1
ansi/gradlew
vendored
Symbolic link
1
ansi/gradlew
vendored
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../gradlew
|
1
ansi/gradlew.bat
vendored
Symbolic link
1
ansi/gradlew.bat
vendored
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../gradlew.bat
|
|
@ -17,14 +17,13 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.staropensource.sosengine.base.logging.implementation;
|
package de.staropensource.sosengine.ansi;
|
||||||
|
|
||||||
import de.staropensource.sosengine.base.EngineConfiguration;
|
import de.staropensource.sosengine.base.EngineConfiguration;
|
||||||
import de.staropensource.sosengine.base.classes.LoggerImpl;
|
import de.staropensource.sosengine.base.classes.LoggerImpl;
|
||||||
import de.staropensource.sosengine.base.logging.Logger;
|
import de.staropensource.sosengine.base.logging.Logger;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
||||||
import de.staropensource.sosengine.base.utility.converter.AnsiShortcodeConverter;
|
|
||||||
import org.fusesource.jansi.Ansi;
|
import org.fusesource.jansi.Ansi;
|
||||||
import org.fusesource.jansi.AnsiConsole;
|
import org.fusesource.jansi.AnsiConsole;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -37,13 +36,13 @@ import org.jetbrains.annotations.NotNull;
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({ "unused" })
|
@SuppressWarnings({ "unused" })
|
||||||
public class ColoredLoggerImpl implements LoggerImpl {
|
public class AnsiLoggerImpl implements LoggerImpl {
|
||||||
/**
|
/**
|
||||||
* Constructs this class.
|
* Constructs this class.
|
||||||
*
|
*
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
public ColoredLoggerImpl() {}
|
public AnsiLoggerImpl() {}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@NotNull
|
@NotNull
|
|
@ -17,7 +17,7 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.staropensource.sosengine.base.utility.converter;
|
package de.staropensource.sosengine.ansi;
|
||||||
|
|
||||||
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
|
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
|
||||||
import de.staropensource.sosengine.base.exceptions.ParserException;
|
import de.staropensource.sosengine.base.exceptions.ParserException;
|
|
@ -0,0 +1,90 @@
|
||||||
|
/*
|
||||||
|
* STAROPENSOURCE ENGINE SOURCE FILE
|
||||||
|
* Copyright (c) 2024 The StarOpenSource Engine Contributors
|
||||||
|
* Licensed under the GNU Affero General Public License v3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.staropensource.sosengine.ansi;
|
||||||
|
|
||||||
|
import de.staropensource.sosengine.base.annotations.EngineSubsystem;
|
||||||
|
import de.staropensource.sosengine.base.classes.SubsystemMainClass;
|
||||||
|
import de.staropensource.sosengine.base.data.info.EngineInformation;
|
||||||
|
import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
|
||||||
|
import de.staropensource.sosengine.base.logging.Logger;
|
||||||
|
import de.staropensource.sosengine.base.logging.LoggerInstance;
|
||||||
|
import de.staropensource.sosengine.base.types.CodePart;
|
||||||
|
import de.staropensource.sosengine.base.types.DependencyVector;
|
||||||
|
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
||||||
|
import lombok.Getter;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main object for the ANSI Compatibility subsystem.
|
||||||
|
*
|
||||||
|
* @since v1-alpha0
|
||||||
|
*/
|
||||||
|
@SuppressWarnings({ "unused", "JavadocDeclaration", "JavadocBlankLines" })
|
||||||
|
@EngineSubsystem
|
||||||
|
public final class AnsiSubsystem implements SubsystemMainClass {
|
||||||
|
/**
|
||||||
|
* Contains the class instance.
|
||||||
|
*
|
||||||
|
* @since v1-alpha0
|
||||||
|
*
|
||||||
|
* -- GETTER --
|
||||||
|
* Returns the class instance.
|
||||||
|
*
|
||||||
|
* @return class instance unless the subsystem is uninitialized
|
||||||
|
* @since v1-alpha0
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private static AnsiSubsystem instance = null;
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
private final LoggerInstance logger = new LoggerInstance(new LogIssuer(getClass(), CodePart.ENGINE));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs this subsystem.
|
||||||
|
*/
|
||||||
|
public AnsiSubsystem() {
|
||||||
|
// Check if subsystem has already initialized
|
||||||
|
if (instance == null)
|
||||||
|
instance = this;
|
||||||
|
else {
|
||||||
|
instance.logger.crash("The subsystem tried to initialize twice");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "ansi";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public void initializeSubsystem() {
|
||||||
|
Logger.setLoggerImplementation(new AnsiLoggerImpl());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public DependencyVector getDependencyVector() {
|
||||||
|
return new DependencyVector("ansi", StarOpenSourceVersioningSystem.class, EngineInformation.getVersioningString());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* STAROPENSOURCE ENGINE SOURCE FILE
|
||||||
|
* Copyright (c) 2024 The StarOpenSource Engine Contributors
|
||||||
|
* Licensed under the GNU Affero General Public License v3
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains the ANSI subsystem code.
|
||||||
|
*/
|
||||||
|
package de.staropensource.sosengine.ansi;
|
27
ansi/src/main/java/module-info.java
Normal file
27
ansi/src/main/java/module-info.java
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
* Defines the ANSI subsystem, allowing the engine to
|
||||||
|
* use ANSI escape codes using the Jansi library.
|
||||||
|
*
|
||||||
|
* @since v1-alpha2
|
||||||
|
*/
|
||||||
|
module sosengine.ansi {
|
||||||
|
// Dependencies
|
||||||
|
// -> Java <-
|
||||||
|
requires transitive java.management;
|
||||||
|
|
||||||
|
// -> Engine <-
|
||||||
|
requires transitive sosengine.base;
|
||||||
|
|
||||||
|
// -> Common stuff <-
|
||||||
|
requires transitive static lombok;
|
||||||
|
requires transitive org.jetbrains.annotations;
|
||||||
|
|
||||||
|
// -> Subystem-specific dependencies <-
|
||||||
|
requires org.fusesource.jansi;
|
||||||
|
|
||||||
|
// API access
|
||||||
|
exports de.staropensource.sosengine.ansi;
|
||||||
|
|
||||||
|
// Reflection access
|
||||||
|
opens de.staropensource.sosengine.ansi;
|
||||||
|
}
|
|
@ -36,9 +36,6 @@ dependencies {
|
||||||
// JetBrains Annotations
|
// JetBrains Annotations
|
||||||
compileOnly("org.jetbrains:annotations:${dependencyJetbrainsAnnotations}")
|
compileOnly("org.jetbrains:annotations:${dependencyJetbrainsAnnotations}")
|
||||||
|
|
||||||
// ANSI support
|
|
||||||
implementation("org.fusesource.jansi:jansi:${dependencyJansi}")
|
|
||||||
|
|
||||||
// Reflections
|
// Reflections
|
||||||
implementation("org.reflections:reflections:${dependencyReflections}")
|
implementation("org.reflections:reflections:${dependencyReflections}")
|
||||||
|
|
||||||
|
|
|
@ -19,14 +19,15 @@
|
||||||
|
|
||||||
package de.staropensource.sosengine.base;
|
package de.staropensource.sosengine.base;
|
||||||
|
|
||||||
|
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
|
||||||
import de.staropensource.sosengine.base.classes.SubsystemConfiguration;
|
import de.staropensource.sosengine.base.classes.SubsystemConfiguration;
|
||||||
|
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
|
||||||
import de.staropensource.sosengine.base.logging.CrashHandler;
|
import de.staropensource.sosengine.base.logging.CrashHandler;
|
||||||
import de.staropensource.sosengine.base.logging.Logger;
|
import de.staropensource.sosengine.base.logging.Logger;
|
||||||
import de.staropensource.sosengine.base.types.CodePart;
|
import de.staropensource.sosengine.base.types.CodePart;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
||||||
import de.staropensource.sosengine.base.types.vectors.Vec2;
|
import de.staropensource.sosengine.base.types.vectors.Vec2;
|
||||||
import de.staropensource.sosengine.base.utility.converter.AnsiShortcodeConverter;
|
|
||||||
import de.staropensource.sosengine.base.utility.parser.PropertyParser;
|
import de.staropensource.sosengine.base.utility.parser.PropertyParser;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -91,7 +92,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #debug}.
|
* Gets the value for {@link #debug}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#debug
|
* @see #debug
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean debug;
|
private boolean debug;
|
||||||
|
@ -99,47 +100,47 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
/**
|
/**
|
||||||
* If enabled, all called events will be logged.
|
* If enabled, all called events will be logged.
|
||||||
*
|
*
|
||||||
* @see de.staropensource.sosengine.base.classes.helpers.EventHelper#logCall(Class, Object...)
|
* @see EventHelper#logCall(Class, Object...)
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*
|
*
|
||||||
* -- GETTER --
|
* -- GETTER --
|
||||||
* Gets the value for {@link #debugEvents}.
|
* Gets the value for {@link #debugEvents}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#debugEvents
|
* @see #debugEvents
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean debugEvents;
|
private boolean debugEvents;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If enabled, very verbose messages about the {@link AnsiShortcodeConverter}'s internals will be printed.<br/>
|
* If enabled, very verbose messages about the {@link ShortcodeParserSkeleton}'s internals will be printed.
|
||||||
* Don't enable unless you want to work on it.
|
* Don't enable unless you want to work on it.
|
||||||
*
|
*
|
||||||
* @see AnsiShortcodeConverter
|
* @see ShortcodeParserSkeleton
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*
|
*
|
||||||
* -- GETTER --
|
* -- GETTER --
|
||||||
* Gets the value for {@link #debugShortcodeConverter}.
|
* Gets the value for {@link #debugShortcodeConverter}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#debugShortcodeConverter
|
* @see #debugShortcodeConverter
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean debugShortcodeConverter;
|
private boolean debugShortcodeConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If enabled, invalid shortcodes will be logged by the {@link AnsiShortcodeConverter}.
|
* If enabled, invalid shortcodes will be logged by the {@link ShortcodeParserSkeleton}.
|
||||||
* The message will be printed as a silent warning.
|
* The message will be printed as a {@link LogLevel#SILENT_WARNING}.
|
||||||
*
|
*
|
||||||
* @see AnsiShortcodeConverter
|
* @see ShortcodeParserSkeleton
|
||||||
* @see EngineConfiguration#loggerLevel
|
* @see #loggerLevel
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*
|
*
|
||||||
* -- GETTER --
|
* -- GETTER --
|
||||||
* Gets the value for {@link #errorShortcodeConverter}.
|
* Gets the value for {@link #errorShortcodeConverter}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#errorShortcodeConverter
|
* @see #errorShortcodeConverter
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean errorShortcodeConverter;
|
private boolean errorShortcodeConverter;
|
||||||
|
@ -148,7 +149,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* If enabled, will makes the {@link Logger} work asynchronous, in a separate platform thread.
|
* If enabled, will makes the {@link Logger} work asynchronous, in a separate platform thread.
|
||||||
* Don't disable unless you want your application to run <b>extremely</b> slowly.
|
* Don't disable unless you want your application to run <b>extremely</b> slowly.
|
||||||
*
|
*
|
||||||
* @see EngineConfiguration#loggerPollingSpeed
|
* @see #loggerPollingSpeed
|
||||||
* @see Thread
|
* @see Thread
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*
|
*
|
||||||
|
@ -156,7 +157,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #optimizeLogging}.
|
* Gets the value for {@link #optimizeLogging}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#optimizeLogging
|
* @see #optimizeLogging
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean optimizeLogging;
|
private boolean optimizeLogging;
|
||||||
|
@ -172,7 +173,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #optimizeEvents}.
|
* Gets the value for {@link #optimizeEvents}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#optimizeEvents
|
* @see #optimizeEvents
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean optimizeEvents;
|
private boolean optimizeEvents;
|
||||||
|
@ -192,7 +193,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #optimizeSubsystemInitialization}.
|
* Gets the value for {@link #optimizeSubsystemInitialization}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#optimizeSubsystemInitialization
|
* @see #optimizeSubsystemInitialization
|
||||||
* @since v1-alpha2
|
* @since v1-alpha2
|
||||||
*/
|
*/
|
||||||
private boolean optimizeSubsystemInitialization;
|
private boolean optimizeSubsystemInitialization;
|
||||||
|
@ -207,7 +208,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #loggerLevel}.
|
* Gets the value for {@link #loggerLevel}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#loggerLevel
|
* @see #loggerLevel
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private LogLevel loggerLevel;
|
private LogLevel loggerLevel;
|
||||||
|
@ -222,7 +223,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #loggerTemplate}
|
* Gets the value for {@link #loggerTemplate}
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#loggerTemplate
|
* @see #loggerTemplate
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private String loggerTemplate;
|
private String loggerTemplate;
|
||||||
|
@ -238,7 +239,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #loggerImmediateShutdown}.
|
* Gets the value for {@link #loggerImmediateShutdown}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#loggerImmediateShutdown
|
* @see #loggerImmediateShutdown
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean loggerImmediateShutdown;
|
private boolean loggerImmediateShutdown;
|
||||||
|
@ -253,7 +254,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #loggerForceStandardOutput}.
|
* Gets the value for {@link #loggerForceStandardOutput}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#loggerForceStandardOutput
|
* @see #loggerForceStandardOutput
|
||||||
* @since v1-alpha0
|
* @since v1-alpha0
|
||||||
*/
|
*/
|
||||||
private boolean loggerForceStandardOutput;
|
private boolean loggerForceStandardOutput;
|
||||||
|
@ -262,14 +263,14 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Determines how fast the logging thread will poll for queued messages.
|
* Determines how fast the logging thread will poll for queued messages.
|
||||||
* Only applies if {@code optimizeLogging} is turned on.
|
* Only applies if {@code optimizeLogging} is turned on.
|
||||||
*
|
*
|
||||||
* @see EngineConfiguration#optimizeLogging
|
* @see #optimizeLogging
|
||||||
* @since v1-alpha1
|
* @since v1-alpha1
|
||||||
*
|
*
|
||||||
* -- GETTER --
|
* -- GETTER --
|
||||||
* Gets the value for {@link #loggerForceStandardOutput}.
|
* Gets the value for {@link #loggerForceStandardOutput}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#loggerForceStandardOutput
|
* @see #loggerForceStandardOutput
|
||||||
* @since v1-alpha1
|
* @since v1-alpha1
|
||||||
*/
|
*/
|
||||||
private int loggerPollingSpeed;
|
private int loggerPollingSpeed;
|
||||||
|
@ -288,7 +289,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
|
||||||
* Gets the value for {@link #hideFullTypePath}.
|
* Gets the value for {@link #hideFullTypePath}.
|
||||||
*
|
*
|
||||||
* @return variable value
|
* @return variable value
|
||||||
* @see EngineConfiguration#hideFullTypePath
|
* @see #hideFullTypePath
|
||||||
* @since v1-alpha2
|
* @since v1-alpha2
|
||||||
*/
|
*/
|
||||||
private boolean hideFullTypePath;
|
private boolean hideFullTypePath;
|
||||||
|
|
|
@ -27,7 +27,7 @@ import de.staropensource.sosengine.base.classes.helpers.EventHelper;
|
||||||
import de.staropensource.sosengine.base.events.LogEvent;
|
import de.staropensource.sosengine.base.events.LogEvent;
|
||||||
import de.staropensource.sosengine.base.internal.placeholders.logger.*;
|
import de.staropensource.sosengine.base.internal.placeholders.logger.*;
|
||||||
import de.staropensource.sosengine.base.internal.types.QueuedLogMessage;
|
import de.staropensource.sosengine.base.internal.types.QueuedLogMessage;
|
||||||
import de.staropensource.sosengine.base.logging.implementation.ColoredLoggerImpl;
|
import de.staropensource.sosengine.base.logging.implementation.PlainLoggerImpl;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
import de.staropensource.sosengine.base.types.logging.LogIssuer;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
import de.staropensource.sosengine.base.types.logging.LogLevel;
|
||||||
import de.staropensource.sosengine.base.types.logging.LogRule;
|
import de.staropensource.sosengine.base.types.logging.LogRule;
|
||||||
|
@ -75,7 +75,7 @@ public final class Logger {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
private static LoggerImpl loggerImplementation = new ColoredLoggerImpl();
|
private static LoggerImpl loggerImplementation = new PlainLoggerImpl();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refers to the logging thread.
|
* Refers to the logging thread.
|
||||||
|
|
|
@ -8,7 +8,6 @@ module sosengine.base {
|
||||||
requires transitive java.management;
|
requires transitive java.management;
|
||||||
requires transitive static lombok;
|
requires transitive static lombok;
|
||||||
requires transitive org.jetbrains.annotations;
|
requires transitive org.jetbrains.annotations;
|
||||||
requires org.fusesource.jansi;
|
|
||||||
requires org.reflections;
|
requires org.reflections;
|
||||||
|
|
||||||
// API access
|
// API access
|
||||||
|
|
31
build.gradle
31
build.gradle
|
@ -26,13 +26,9 @@ plugins {
|
||||||
|
|
||||||
// Register task for Javadoc generation for all subsystems
|
// Register task for Javadoc generation for all subsystems
|
||||||
tasks.register("javadocAll", Javadoc) {
|
tasks.register("javadocAll", Javadoc) {
|
||||||
// Subprojects to document
|
// Subprojects to exclude
|
||||||
def subprojects = [
|
def nodoc = [
|
||||||
":base",
|
":testapp",
|
||||||
":graphics",
|
|
||||||
":graphics:opengl",
|
|
||||||
":graphics:vulkan",
|
|
||||||
":slf4j-compat",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
// Task metadata
|
// Task metadata
|
||||||
|
@ -40,8 +36,23 @@ tasks.register("javadocAll", Javadoc) {
|
||||||
setGroup("documentation")
|
setGroup("documentation")
|
||||||
|
|
||||||
// Make sure the source is delomboked first
|
// Make sure the source is delomboked first
|
||||||
for (String subproject : subprojects)
|
boolean match
|
||||||
dependsOn(project(subproject).delombok)
|
for (Project subproject : getSubprojects()) {
|
||||||
|
match = false
|
||||||
|
|
||||||
|
// Check if name is in 'nodoc' list
|
||||||
|
for (String name : nodoc)
|
||||||
|
if (subproject.getName() == name)
|
||||||
|
match = true
|
||||||
|
|
||||||
|
if (match)
|
||||||
|
continue
|
||||||
|
|
||||||
|
// Add dependsOn if delombok task is found
|
||||||
|
try {
|
||||||
|
dependsOn(subproject.getTasks().named("delombok"))
|
||||||
|
} catch(UnknownTaskException ignored) {}
|
||||||
|
}
|
||||||
|
|
||||||
// Set output directory, source and classpath
|
// Set output directory, source and classpath
|
||||||
setSource(subprojects.collect({ project(it).projectDir.getPath() + "/build/generated/sources/delombok/java/main/" }))
|
setSource(subprojects.collect({ project(it).projectDir.getPath() + "/build/generated/sources/delombok/java/main/" }))
|
||||||
|
@ -62,7 +73,7 @@ tasks.register("javadocAll", Javadoc) {
|
||||||
|
|
||||||
// Fix module collisions
|
// Fix module collisions
|
||||||
doFirst {
|
doFirst {
|
||||||
logger.log(LogLevel.WARN, "If this task fails, make sure to reset all module-info.java files using git or you may have issues.")
|
logger.log(LogLevel.WARN, "If this task fails, make sure to reset all module-info.java files using git or you may encounter issues.")
|
||||||
|
|
||||||
for (String subproject : subprojects) {
|
for (String subproject : subprojects) {
|
||||||
File source = new File(project(subproject).projectDir.getPath() + "/src/main/java/module-info.java")
|
File source = new File(project(subproject).projectDir.getPath() + "/src/main/java/module-info.java")
|
||||||
|
|
|
@ -32,6 +32,7 @@ Subsystems on the other hand usually handle complex tasks. They provide abstract
|
||||||
## Available official subsystems
|
## Available official subsystems
|
||||||
Besides the `base` engine, there is one stable subsystem, two experimental subsystems and one stub subsystem.
|
Besides the `base` engine, there is one stable subsystem, two experimental subsystems and one stub subsystem.
|
||||||
### Stable
|
### Stable
|
||||||
|
- [`ansi`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/ansi): Provides an ANSI logging implementation and a ShortcodeParserSkeleton implementation
|
||||||
- [`slf4j-compat`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/slf4j-compat): Provides [SLF4J](https://slf4j.org/) compatibility logger that redirects all log calls to the engine.
|
- [`slf4j-compat`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/slf4j-compat): Provides [SLF4J](https://slf4j.org/) compatibility logger that redirects all log calls to the engine.
|
||||||
### Experimental
|
### Experimental
|
||||||
- [`graphics`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/graphics): Provides interfaces and classes meant to be extended by Graphics APIs.
|
- [`graphics`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/graphics): Provides interfaces and classes meant to be extended by Graphics APIs.
|
||||||
|
|
|
@ -17,12 +17,13 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rootProject.name = "sosengine"
|
rootProject.setName("sosengine")
|
||||||
|
|
||||||
include "base"
|
include("base")
|
||||||
include "slf4j-compat"
|
include("ansi")
|
||||||
include "graphics"
|
include("slf4j-compat")
|
||||||
include "graphics:glfw"
|
include("graphics")
|
||||||
include "graphics:opengl"
|
include("graphics:glfw")
|
||||||
include "graphics:vulkan"
|
include("graphics:opengl")
|
||||||
include "testapp"
|
include("graphics:vulkan")
|
||||||
|
include("testapp")
|
||||||
|
|
|
@ -40,6 +40,7 @@ dependencies {
|
||||||
|
|
||||||
// -> Project <-
|
// -> Project <-
|
||||||
implementation(project(":base"))
|
implementation(project(":base"))
|
||||||
|
implementation(project(":ansi"))
|
||||||
implementation(project(":slf4j-compat"))
|
implementation(project(":slf4j-compat"))
|
||||||
implementation(project(":graphics"))
|
implementation(project(":graphics"))
|
||||||
implementation(project(":graphics:vulkan"))
|
implementation(project(":graphics:vulkan"))
|
||||||
|
|
Loading…
Reference in a new issue