mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-06-05 13:57:00 +03:00
[REFACTOR] Update create module api
This commit is contained in:
parent
de844201b4
commit
b8f6857ef2
16 changed files with 125 additions and 35 deletions
|
@ -2,13 +2,13 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.launcher.base.modules.events.InitPhase;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class LaunchServerCoreModule extends LauncherModule {
|
||||
public LaunchServerCoreModule() {
|
||||
super(new LauncherModuleInfo("LaunchServerCore", Version.getVersion()));
|
||||
super(new LauncherModuleInfoBuilder().setName("LaunchServerCore").setVersion(Version.getVersion()).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public abstract class LauncherModule {
|
|||
private LauncherTrustManager.CheckClassResult checkResult;
|
||||
|
||||
protected LauncherModule() {
|
||||
moduleInfo = new LauncherModuleInfo("UnknownModule");
|
||||
moduleInfo = new LauncherModuleInfoBuilder().setName("UnknownModule").createLauncherModuleInfo();
|
||||
}
|
||||
|
||||
protected LauncherModule(LauncherModuleInfo info) {
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package pro.gravit.launcher.base.modules;
|
||||
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class LauncherModuleInfoBuilder {
|
||||
private String name;
|
||||
private Version version;
|
||||
private String[] dependencies = new String[0];
|
||||
private int priority;
|
||||
private String[] providers = new String[0];
|
||||
|
||||
public LauncherModuleInfoBuilder setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LauncherModuleInfoBuilder setVersion(Version version) {
|
||||
this.version = version;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LauncherModuleInfoBuilder setDependencies(String[] dependencies) {
|
||||
this.dependencies = dependencies;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LauncherModuleInfoBuilder setPriority(int priority) {
|
||||
this.priority = priority;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LauncherModuleInfoBuilder setProviders(String[] providers) {
|
||||
this.providers = providers;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LauncherModuleInfo createLauncherModuleInfo() {
|
||||
return new LauncherModuleInfo(name, version, priority, dependencies, providers);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package pro.gravit.launcher.base.modules;
|
||||
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class SimpleModule extends LauncherModule {
|
||||
protected Consumer<SimpleModuleAccessor> consumer;
|
||||
|
||||
public SimpleModule(LauncherModuleInfo info, Consumer<SimpleModuleAccessor> consumer) {
|
||||
super(info);
|
||||
this.consumer = consumer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(LauncherInitContext initContext) {
|
||||
consumer.accept(new SimpleModuleAccessor(initContext));
|
||||
}
|
||||
|
||||
public static SimpleModule of(String name, Version version, Consumer<SimpleModuleAccessor> consumer) {
|
||||
return new SimpleModule(new LauncherModuleInfoBuilder()
|
||||
.setName(name)
|
||||
.setVersion(version)
|
||||
.createLauncherModuleInfo(), consumer);
|
||||
}
|
||||
|
||||
public class SimpleModuleAccessor {
|
||||
private final LauncherInitContext context;
|
||||
|
||||
public SimpleModuleAccessor(LauncherInitContext context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
|
||||
public final <T extends LauncherModule> T requireModule(Class<? extends T> clazz, Version minVersion) {
|
||||
return SimpleModule.this.requireModule(clazz, minVersion);
|
||||
}
|
||||
|
||||
public final void requireModule(String name, Version minVersion) {
|
||||
SimpleModule.this.requireModule(name, minVersion);
|
||||
}
|
||||
|
||||
public final LauncherModulesContext getModulesContext() {
|
||||
return SimpleModule.this.getContext();
|
||||
}
|
||||
|
||||
public LauncherInitContext getContext() {
|
||||
return context;
|
||||
}
|
||||
|
||||
public <T extends Event> boolean registerEvent(EventHandler<T> handle, Class<T> tClass) {
|
||||
return SimpleModule.this.registerEvent(handle, tClass);
|
||||
}
|
||||
|
||||
public final <T extends Event> void callEvent(T event) {
|
||||
SimpleModule.this.callEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,14 +2,12 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class Cyclic2DependModule extends LauncherModule {
|
||||
public Cyclic2DependModule() {
|
||||
super(new LauncherModuleInfo("cyclic2",
|
||||
new Version(1, 0, 0),
|
||||
2, new String[]{"cyclic1"}));
|
||||
super(new LauncherModuleInfoBuilder().setName("cyclic2").setVersion(new Version(1, 0, 0)).setPriority(2).setDependencies(new String[]{"cyclic1"}).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,14 +2,12 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class CyclicDependModule extends LauncherModule {
|
||||
public CyclicDependModule() {
|
||||
super(new LauncherModuleInfo("cyclic1",
|
||||
new Version(1, 0, 0),
|
||||
2, new String[]{"cyclic2"}));
|
||||
super(new LauncherModuleInfoBuilder().setName("cyclic1").setVersion(new Version(1, 0, 0)).setPriority(2).setDependencies(new String[]{"cyclic2"}).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,14 +3,12 @@
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class Depend1Module extends LauncherModule {
|
||||
public Depend1Module() {
|
||||
super(new LauncherModuleInfo("depend1", new Version(1, 0, 0),
|
||||
0,
|
||||
new String[]{"depend3", "internal", "virtual"}));
|
||||
super(new LauncherModuleInfoBuilder().setName("depend1").setVersion(new Version(1, 0, 0)).setPriority(0).setDependencies(new String[]{"depend3", "internal", "virtual"}).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class Depend2Module extends LauncherModule {
|
||||
public Depend2Module() {
|
||||
super(new LauncherModuleInfo("depend2"));
|
||||
super(new LauncherModuleInfoBuilder().setName("depend2").createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
|
||||
public class Depend3Module extends LauncherModule {
|
||||
public Depend3Module() {
|
||||
super(new LauncherModuleInfo("depend3"));
|
||||
super(new LauncherModuleInfoBuilder().setName("depend3").createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
|
||||
public class InternalModule extends LauncherModule {
|
||||
public InternalModule() {
|
||||
super(new LauncherModuleInfo("internal"));
|
||||
super(new LauncherModuleInfoBuilder().setName("internal").createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,15 +3,13 @@
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class MainModule extends LauncherModule {
|
||||
|
||||
public MainModule() {
|
||||
super(new LauncherModuleInfo("main",
|
||||
new Version(1, 0, 0),
|
||||
0, new String[]{"depend1", "depend2"}));
|
||||
super(new LauncherModuleInfoBuilder().setName("main").setVersion(new Version(1, 0, 0)).setPriority(0).setDependencies(new String[]{"depend1", "depend2"}).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class ProvidedModule extends LauncherModule implements VirtualInterface {
|
||||
public ProvidedModule() {
|
||||
super(new LauncherModuleInfo("provided", new Version(1, 0, 0),
|
||||
0, new String[]{}, new String[]{"virtual"}));
|
||||
super(new LauncherModuleInfoBuilder().setName("provided").setVersion(new Version(1, 0, 0)).setPriority(0).setDependencies(new String[]{}).setProviders(new String[]{"virtual"}).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package pro.gravit.launcher.impl;
|
||||
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.launcher.impl.event.CancelEvent;
|
||||
import pro.gravit.launcher.impl.event.NormalEvent;
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
|
||||
public class TestModule extends LauncherModule {
|
||||
|
||||
public TestModule() {
|
||||
super(new LauncherModuleInfo("testModule"));
|
||||
super(new LauncherModuleInfoBuilder().setName("testModule").createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class ClientLauncherCoreModule extends LauncherModule {
|
||||
public ClientLauncherCoreModule() {
|
||||
super(new LauncherModuleInfo("ClientLauncherCore", Version.getVersion()));
|
||||
super(new LauncherModuleInfoBuilder().setName("ClientLauncherCore").setVersion(Version.getVersion()).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
import pro.gravit.launcher.base.modules.LauncherInitContext;
|
||||
import pro.gravit.launcher.base.modules.LauncherModule;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfo;
|
||||
import pro.gravit.launcher.base.modules.LauncherModuleInfoBuilder;
|
||||
import pro.gravit.utils.Version;
|
||||
|
||||
public class RuntimeLauncherCoreModule extends LauncherModule {
|
||||
public RuntimeLauncherCoreModule() {
|
||||
super(new LauncherModuleInfo("ClientLauncherCore", Version.getVersion()));
|
||||
super(new LauncherModuleInfoBuilder().setName("ClientLauncherCore").setVersion(Version.getVersion()).createLauncherModuleInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
2
modules
2
modules
|
@ -1 +1 @@
|
|||
Subproject commit 0c464380b9db8fb73f995953538b4e323035a3b0
|
||||
Subproject commit 5d45e024375779aef4f6dafff6ea5efba8c250f0
|
Loading…
Reference in a new issue