diff --git a/src/main/java/org/opennars/web/httpnar/NARServer.java b/src/main/java/org/opennars/web/httpnar/NARServer.java index fdf482f02b17b856b45e1d5ebfaa38e2550a798c..7b3a93e1bee47329ca34fe9784cd4df6f30612cc 100644 --- a/src/main/java/org/opennars/web/httpnar/NARServer.java +++ b/src/main/java/org/opennars/web/httpnar/NARServer.java @@ -16,15 +16,21 @@ package org.opennars.web.httpnar; import java.io.File; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.net.InetSocketAddress; +import java.text.ParseException; import java.util.HashMap; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.xml.parsers.ParserConfigurationException; import org.java_websocket.WebSocket; import org.java_websocket.WebSocketImpl; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.server.WebSocketServer; import org.opennars.interfaces.pub.Reasoner; import org.opennars.main.Nar; +import org.xml.sax.SAXException; public class NARServer { @@ -54,7 +60,27 @@ public class NARServer { if (WEBSOCKET_DEBUG) System.out.println("Connect: " + conn.getRemoteSocketAddress().getAddress().getHostAddress()); if(nar == null) { - nar = new Nar(); + try { + nar = new Nar(); + } catch (IOException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (InvocationTargetException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (NoSuchMethodException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (ParserConfigurationException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (SAXException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (ClassNotFoundException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } catch (ParseException ex) { + Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex); + } } final NARConnection n = new NARConnection(nar, cycleIntervalMS) { @Override public void println(String output) { diff --git a/src/main/java/org/opennars/web/multinar/NarNode.java b/src/main/java/org/opennars/web/multinar/NarNode.java index 2bc3297ea0ac48489afcd0ef813fdd4228cbfeca..e84a872b823caaa27269c73378594f1549060da2 100644 --- a/src/main/java/org/opennars/web/multinar/NarNode.java +++ b/src/main/java/org/opennars/web/multinar/NarNode.java @@ -20,21 +20,25 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; +import java.lang.reflect.InvocationTargetException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; +import java.text.ParseException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +import javax.xml.parsers.ParserConfigurationException; import org.opennars.entity.Task; import org.opennars.io.events.EventEmitter.EventObserver; import org.opennars.io.events.Events; import org.opennars.language.CompoundTerm; import org.opennars.language.Term; import org.opennars.main.Nar; +import org.xml.sax.SAXException; public class NarNode extends Nar implements EventObserver { @@ -44,6 +48,11 @@ public class NarNode extends Nar implements EventObserver { /* The socket the Nar listens from */ private DatagramSocket receiveSocket; + @Override + public long time() { + return System.currentTimeMillis(); + } + /*** * Create a Nar node that listens for received tasks from other NarNode instances * @@ -51,7 +60,9 @@ public class NarNode extends Nar implements EventObserver { * @throws SocketException * @throws UnknownHostException */ - public NarNode(int listenPort) throws SocketException, UnknownHostException { + public NarNode(int listenPort) throws SocketException, UnknownHostException, IOException, InstantiationException, + InvocationTargetException, NoSuchMethodException, ParserConfigurationException, IllegalAccessException, SAXException, + ClassNotFoundException, ParseException { super(); this.receiveSocket = new DatagramSocket(listenPort, InetAddress.getByName("127.0.0.1")); this.event(this, true, Events.TaskAdd.class); @@ -115,7 +126,7 @@ public class NarNode extends Nar implements EventObserver { if(!searchTerm || atomicEqualsSearched || compoundContainsSearched) { DatagramPacket packet = new DatagramPacket(serializedMessage, serializedMessage.length, target.targetAddress, target.targetPort); target.sendSocket.send(packet); - System.out.println("task sent:" + t); + //System.out.println("task sent:" + t); } } } @@ -175,7 +186,7 @@ public class NarNode extends Nar implements EventObserver { receiveSocket.receive(packet); ObjectInputStream iStream = new ObjectInputStream(new ByteArrayInputStream(recBytes)); Task T = (Task) iStream.readObject(); - System.out.println("task received: " + T); + //System.out.println("task received: " + T); iStream.close(); return T; } @@ -190,7 +201,9 @@ public class NarNode extends Nar implements EventObserver { * @throws IOException * @throws InterruptedException */ - public static void main(String[] args) throws SocketException, UnknownHostException, IOException, InterruptedException { + public static void main(String[] args) throws SocketException, UnknownHostException, IOException, + InterruptedException, InstantiationException, InvocationTargetException, ParserConfigurationException, + NoSuchMethodException, SAXException, ClassNotFoundException, IllegalAccessException, ParseException { int nar1port = 64001; int nar2port = 64002; String localIP = "127.0.0.1"; @@ -203,11 +216,12 @@ public class NarNode extends Nar implements EventObserver { public void event(Class event, Object[] args) { if(event == EventReceivedTask.class) { Task task = (Task) args[0]; - System.out.println("received task event triggered for task: " + task); + System.out.println("received task event triggered in nar2: " + task); System.out.println("success"); } } }, true, EventReceivedTask.class); + System.out.println("High priority task occurred in nar1"); nar1.addInput("<{task1} --> [great]>."); Thread.sleep(5000); System.exit(0);