Fixed startup and store in db.
This commit is contained in:
parent
73f201bdac
commit
b93f1d7ef1
15 changed files with 172 additions and 107 deletions
|
|
@ -25,5 +25,6 @@
|
|||
|
||||
<!-- Package limits. -->
|
||||
<logger level="INFO" name="org.eclipse.jetty"/>
|
||||
<logger level="INFO" name="jakarta.json.spi"/>
|
||||
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@
|
|||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>no2all-wire-jetty</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.parsson</groupId>
|
||||
<artifactId>parsson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
package love.distributedrebirth.no2all.zerofungus;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.json.Json;
|
||||
import jakarta.json.JsonWriter;
|
||||
import love.distributedrebirth.no2all.nostr.model.event.NoStrEvent;
|
||||
import love.distributedrebirth.no2all.react.No2AllReact;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactSlot;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactSlotLoad;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactSlotSignal;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactTypeScript;
|
||||
import love.distributedrebirth.no2all.react.nostr.server.relay.NoStrArtServerRelayStoreEvent;
|
||||
import love.distributedrebirth.no2all.react.nostr.server.relay.NoStrRtsServerRelay;
|
||||
|
||||
public class ZFunRtsServer implements No2AllReactTypeScript {
|
||||
|
||||
public static final No2AllReactSlot API = No2AllReactSlot.ofClass(ZFunRtsServer.class);
|
||||
private static final Logger logger = Logger.getLogger(ZFunRtsServer.class.getName());
|
||||
|
||||
@Override
|
||||
public void onEvent(No2AllReactSlotSignal<No2AllReactSlotLoad> signal) {
|
||||
No2AllReact react = signal.getReact();
|
||||
react.claim(API);
|
||||
|
||||
DataSource ds = react.service(DataSource.class);
|
||||
react.registrate(NoStrRtsServerRelay.API, NoStrArtServerRelayStoreEvent.class, storeEvent -> {
|
||||
logger.info("Store event: " + storeEvent.getData().getEvent().getId().getHexDipavali());
|
||||
NoStrEvent event = storeEvent.getData().getEvent();
|
||||
StringWriter jsonStr = new StringWriter();
|
||||
try (JsonWriter writer = Json.createWriter(jsonStr)) {
|
||||
writer.write(event.toBible());
|
||||
}
|
||||
try (Connection conn = ds.getConnection()) {
|
||||
String sql = "INSERT INTO \"ᔆʸᔆᐪᓫᔿ\".\"ᔆᐪᣔᒼᒽᑉ\" (\"ᑊᑊᐣ\",\"ᣖᓑᒃᒽᑉᓫᔾ\",\"ᒼᣗᓫᣔᐪᓫᐝᒄᐪ\",\"ᑊᑉᑊᣕᒄ\",\"ᒄᓫᒻᐪᣔᕐ\",\"ᓫᕁᣖᑊᣗᓫᐝᒄᐪ\",\"ᣗᣔᒡᒢ\") VALUES (?,?,?,?,?,?,?)";
|
||||
PreparedStatement prep = conn.prepareStatement(sql);
|
||||
prep.setString(1, event.getId().getHex());
|
||||
prep.setString(2, event.getPayload().getPublicKey().getHex());
|
||||
prep.setDate(3, new java.sql.Date(event.getPayload().getCreatedAt().toEpochMilli()));
|
||||
prep.setInt(4, event.getPayload().getKind().getNumber());
|
||||
prep.setString(5, null); // del tag
|
||||
prep.setString(6, null); // exp date
|
||||
prep.setString(7, jsonStr.toString());
|
||||
prep.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
logger.warning(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -7,17 +7,14 @@ import love.distributedrebirth.no2all.react.No2AllReactSlotLoad;
|
|||
import love.distributedrebirth.no2all.react.No2AllReactSlotSignal;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactTypeScript;
|
||||
|
||||
public class ZFunServer implements No2AllReactTypeScript {
|
||||
public class ZFunRtsServerBooted implements No2AllReactTypeScript {
|
||||
|
||||
public static final No2AllReactSlot API = No2AllReactSlot.ofClass(ZFunServer.class);
|
||||
private static final Logger logger = Logger.getLogger(ZFunServer.class.getName());
|
||||
public static final No2AllReactSlot API = No2AllReactSlot.ofClass(ZFunRtsServerBooted.class);
|
||||
private static final Logger logger = Logger.getLogger(ZFunRtsServerBooted.class.getName());
|
||||
|
||||
@Override
|
||||
public void onEvent(No2AllReactSlotSignal<No2AllReactSlotLoad> signal) {
|
||||
signal.getReact().claim(API);
|
||||
|
||||
// TODO: reg and refire events
|
||||
|
||||
logger.info("╔═╗┌─┐┬─┐┌─┐ .╔═╗┬ ┬┌┐┌╔═╗┬ ┬┌─┐");
|
||||
logger.info("╔═╝├┤ ├┬┘│ │ . ╠╣ │ ││││║ ╦│ │└─┐");
|
||||
logger.info("╚═╝└─┘┴└─└─┘. ╚ └─┘┘└┘╚═╝└─┘└─┘");
|
||||
|
|
@ -1,7 +1,12 @@
|
|||
package love.distributedrebirth.no2all.zerofungus;
|
||||
|
||||
import love.distributedrebirth.no2all.react.nostr.client.NoStrRtsClient;
|
||||
import love.distributedrebirth.no2all.react.nostr.server.NoStrRtsServer;
|
||||
import love.distributedrebirth.no2all.react.nostr.server.relay.NoStrRtsServerRelay;
|
||||
import love.distributedrebirth.no2all.react.nostr.server.relay.NoStrRtsServerRelaySubs;
|
||||
import love.distributedrebirth.no2all.react.warp.No2AllReactWarpCore;
|
||||
import love.distributedrebirth.no2all.react.warp.No2AllRtsWarpSpeedMonitor;
|
||||
import love.distributedrebirth.no2all.react.wire.client.No2AllRtsClient;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllRtsServer;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllRtsServerLog;
|
||||
import love.distributedrebirth.no2all.zerofungus.service.ZFunRtsConfigJetty;
|
||||
|
|
@ -23,14 +28,29 @@ public enum ZeroFungus /*implements BãßBȍőnAbacusInstanceMBeanʸᴰ<ZeroFung
|
|||
}
|
||||
|
||||
public void start() {
|
||||
// setup logger + warp monitor
|
||||
foei.load(new ZFunRtsConfigLogger());
|
||||
foei.load(new No2AllRtsWarpSpeedMonitor());
|
||||
|
||||
// add websocket wire support + log
|
||||
foei.load(new No2AllRtsClient());
|
||||
foei.load(new No2AllRtsServer());
|
||||
foei.load(new No2AllRtsServerLog());
|
||||
foei.load(ZFunRtsConfigJetty.INSTANCE);
|
||||
foei.load(new ZFunRtsInitJdbc(foei));
|
||||
foei.load(new ZFunServer());
|
||||
|
||||
// add nostr support
|
||||
foei.load(new NoStrRtsClient());
|
||||
foei.load(new NoStrRtsServer());
|
||||
foei.load(new NoStrRtsServerRelay());
|
||||
foei.load(new NoStrRtsServerRelaySubs());
|
||||
|
||||
// config zero fungus servers and clients
|
||||
foei.load(new ZFunRtsInitJdbc(foei));
|
||||
foei.load(new ZFunRtsServer());
|
||||
//foei.load(new ZFunRtsClientReplay());
|
||||
|
||||
// start jetty
|
||||
foei.load(ZFunRtsConfigJetty.INSTANCE);
|
||||
foei.load(new ZFunRtsServerBooted());
|
||||
ZFunRtsConfigJetty.INSTANCE.join();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,10 +27,6 @@ import love.distributedrebirth.no2all.react.No2AllReactSlotLoad;
|
|||
import love.distributedrebirth.no2all.react.No2AllReactSlotSignal;
|
||||
import love.distributedrebirth.no2all.react.No2AllReactTypeScript;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllActServer;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllActServerSocketSendMessage;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllArtServer;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllArtServerSocket;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllArtServerSocketOnMessage;
|
||||
import love.distributedrebirth.no2all.react.wire.server.No2AllRtsServer;
|
||||
import love.distributedrebirth.no2all.wire.jetty.JettyWireServerEndpoint;
|
||||
import love.distributedrebirth.no2all.zerofungus.web.RedirectServlet;
|
||||
|
|
@ -93,29 +89,17 @@ public enum ZFunRtsConfigJetty implements No2AllReactTypeScript {
|
|||
|
||||
No2AllReact react = signal.getReact();
|
||||
server.addEventListener(new Listener() {
|
||||
|
||||
@Override
|
||||
public void lifeCycleStarted(LifeCycle event) {
|
||||
// auto reply
|
||||
react.registrate(No2AllRtsServer.API, No2AllArtServer.class, artServer -> {
|
||||
No2AllReactSlot serverSlot = artServer.getData().getSlot();
|
||||
react.registrate(serverSlot, No2AllArtServerSocket.class, artSocket -> {
|
||||
No2AllReactSlot socketSlot = artSocket.getData().getSlot();
|
||||
react.registrate(socketSlot, No2AllArtServerSocketOnMessage.class, artMsg -> {
|
||||
react.fire(socketSlot,
|
||||
new No2AllActServerSocketSendMessage("RE: " + artMsg.getData().getMessage()));
|
||||
});
|
||||
});
|
||||
});
|
||||
react.fire(No2AllRtsServer.API, new No2AllActServer(endpoint1));
|
||||
react.fire(No2AllRtsServer.API, new No2AllActServer(endpoint2));
|
||||
react.fire(No2AllRtsServer.API, new No2AllActServer(endpoint3));
|
||||
}
|
||||
});
|
||||
try {
|
||||
logger.info("start");
|
||||
logger.info("start jetty");
|
||||
server.start();
|
||||
logger.info("start done");
|
||||
logger.info("jetty started");
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package love.distributedrebirth.no2all.zerofungus.service;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -20,32 +18,26 @@ public class ZFunRtsConfigLogger implements No2AllReactTypeScript {
|
|||
|
||||
@Override
|
||||
public void onEvent(No2AllReactSlotSignal<No2AllReactSlotLoad> signal) {
|
||||
if (System.getProperty("logback.configurationFile") != null) {
|
||||
File logConfig = null;
|
||||
if (System.getProperty("logback.configurationFile") == null) {
|
||||
String logConfig = null;
|
||||
if (System.getProperty("java.class.path").contains("classes")) {
|
||||
logConfig = new File("conf/logback-server-console.xml");
|
||||
logConfig = "conf/logback-server-console.xml";
|
||||
} else {
|
||||
logConfig = new File("conf/logback-server.xml");
|
||||
}
|
||||
try {
|
||||
System.setProperty("logback.configurationFile", logConfig.toURI().toURL().toExternalForm());
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
logConfig = "conf/logback-server.xml";
|
||||
}
|
||||
System.setProperty("logback.configurationFile", logConfig);
|
||||
}
|
||||
System.setProperty("logback.statusListenerClass",NopStatusListener.class.getName());
|
||||
|
||||
System.setProperty("logback.configurationFile","conf/logback-server-console.xml");
|
||||
org.slf4j.Logger logger2 = LoggerFactory.getLogger("MyTest");
|
||||
logger2.debug("Hello world.");
|
||||
if (System.getProperty("logback.statusListenerClass") == null) {
|
||||
System.setProperty("logback.statusListenerClass",NopStatusListener.class.getName());
|
||||
}
|
||||
org.slf4j.Logger logger2 = LoggerFactory.getLogger(ZFunRtsConfigLogger.class);
|
||||
logger2.info("Logging configured.");
|
||||
|
||||
SLF4JBridgeHandler.removeHandlersForRootLogger();
|
||||
SLF4JBridgeHandler.install();
|
||||
logger.info("Logging configured");
|
||||
logger.info(" ╦┌─┐╔╦╗╔╦╗┬ ┬ ╔═╗┌─┐╦ ╦╔═╗┬─┐┌┬┐");
|
||||
logger.info(" ║├┤ ║ ║ └┬┘ ╠═╝│ │║║║║╣ ├┬┘ ││");
|
||||
logger.info("╚╝└─┘ ╩ ╩ ┴ ╩ └─┘╚╩╝╚═╝┴└──┴┘");
|
||||
|
||||
logger.info(" ╦┬ ┬╦ ╦═╗┌─┐╦ ╦┬╦═╗┌─┐╔╦╗");
|
||||
logger.info(" ║│ │║ ╠╦╝├┤ ║║║│╠╦╝├┤ ║║");
|
||||
logger.info("╚╝└─┘╩═╝ ╩╚═└─┘╚╩╝┴╩╚═└─┘═╩╝");
|
||||
//https://patorjk.com/software/taag
|
||||
// Calvin S
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue