aboutsummaryrefslogtreecommitdiff
path: root/juick-demo/src/main/java/com/juick/demo/Demo.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-demo/src/main/java/com/juick/demo/Demo.java')
-rw-r--r--juick-demo/src/main/java/com/juick/demo/Demo.java79
1 files changed, 15 insertions, 64 deletions
diff --git a/juick-demo/src/main/java/com/juick/demo/Demo.java b/juick-demo/src/main/java/com/juick/demo/Demo.java
index b94c9830..db03e2e5 100644
--- a/juick-demo/src/main/java/com/juick/demo/Demo.java
+++ b/juick-demo/src/main/java/com/juick/demo/Demo.java
@@ -1,77 +1,28 @@
package com.juick.demo;
import ch.vorburger.exec.ManagedProcessException;
-import ch.vorburger.mariadb4j.DB;
-import com.juick.Tag;
-import com.juick.User;
-import com.juick.server.MessagesQueries;
-import com.juick.server.PMQueries;
-import com.juick.server.TagQueries;
-import com.juick.server.UserQueries;
-import com.juick.server.protocol.JuickProtocol;
-import com.juick.server.protocol.ProtocolReply;
-import jline.UnsupportedTerminal;
-import jline.console.ConsoleReader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.DriverManagerDataSource;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
+import com.juick.demo.configuration.DemoAppConfiguration;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.core.env.SimpleCommandLinePropertySource;
/**
* Created by vitalyster on 30.08.2016.
*/
public class Demo {
- private static final Logger logger = LoggerFactory.getLogger(Demo.class);
+
public static void main(String ...args) throws ManagedProcessException {
- DB db = DB.newEmbeddedDB(33306);
- db.start();
- db.createDB("juick");
- db.source("schema.sql");
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName("com.mysql.jdbc.Driver");
- dataSource.setUrl("jdbc:mysql://localhost:33306/juick?autoReconnect=true&user=root");
- JdbcTemplate jdbc = new JdbcTemplate(dataSource);
- logger.info("initializing demo database");
+ final AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
- Integer ugnich_id = UserQueries.createUser(jdbc, "ugnich", "secret");
- Integer ugn_mid = MessagesQueries.createMessage(jdbc, ugnich_id, "Hi, I am ugnich", null,
- new ArrayList<Tag>() {{add(TagQueries.getTag(jdbc, "yo", true)); add(TagQueries.getTag(jdbc, "people", true));}});
+ // setup configuration
+ applicationContext.register(DemoAppConfiguration.class);
+ // add CLI property source
+ applicationContext.getEnvironment().getPropertySources()
+ .addLast(new SimpleCommandLinePropertySource(args));
- Integer juick_id = UserQueries.createUser(jdbc, "juick", "secret");
- MessagesQueries.createMessage(jdbc, juick_id, "New demo juick was created", null,
- new ArrayList<Tag>() {{add(TagQueries.getTag(jdbc, "yo", true)); add(TagQueries.getTag(jdbc, "readonly", true));}});
- Integer freefd_id = UserQueries.createUser(jdbc, "freefd", "secret");
- MessagesQueries.createReply(jdbc, ugn_mid, 0, freefd_id, "I am freefd and this is my reply", null);
- MessagesQueries.recommendMessage(jdbc, ugn_mid, freefd_id);
- MessagesQueries.recommendMessage(jdbc, ugn_mid, juick_id);
- MessagesQueries.setMessagePopular(jdbc, ugn_mid, 1);
- PMQueries.createPM(jdbc, freefd_id, ugnich_id, "Hi ugnich!");
- jdbc.execute("UPDATE tags SET top=1");
- jline.TerminalFactory.registerFlavor(jline.TerminalFactory.Flavor.WINDOWS, UnsupportedTerminal.class);
- try (ConsoleReader reader = new ConsoleReader()) {
- reader.setPrompt("ugnich>");
- PrintWriter out = new PrintWriter(reader.getOutput());
- User ugnich = UserQueries.getUserByUID(jdbc, ugnich_id).get();
- out.println(String.format("logged in as @%s", ugnich.getName()));
- out.flush();
- String input;
- JuickProtocol protocol = new JuickProtocol(jdbc, "http://localhost/");
- while ((input = reader.readLine()) != null) {
- ProtocolReply reply = protocol.getReply(ugnich, input);
- out.println(reply.getDescription());
- out.flush();
- }
- } catch (IOException | NoSuchMethodException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
+ // setup all the dependencies (refresh) and make them run (start)
+ applicationContext.refresh();
+ applicationContext.start();
+ DemoApp demoApp = new DemoApp(applicationContext);
+ demoApp.start();
}
}