Commit 886d3322 authored by mohammad.salama's avatar mohammad.salama

Web and GRPC Working - No Web Client as html

parent e854fc87
...@@ -9,40 +9,20 @@ ...@@ -9,40 +9,20 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b8bcd35c-99f3-44c8-a866-59f81c3c8bd0" name="Changes" comment=""> <list default="true" id="b8bcd35c-99f3-44c8-a866-59f81c3c8bd0" name="Changes" comment="Working as Strings, no json, problem in coordinator address">
<change afterPath="$PROJECT_DIR$/src/main/java/GRPCConnection/AddressProxy.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/logs/app.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/app.log" afterDir="false" /> <change beforePath="$PROJECT_DIR$/logs/app.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/app.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/GRPCConnection/GRPCClient/GRPCClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/GRPCConnection/GRPCClient/GRPCClient.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/GRPCConnection/GRPCClient/GRPCClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/GRPCConnection/GRPCClient/GRPCClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/WebSide/WebClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/WebSide/WebClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/WebSide/WebServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/WebSide/WebServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/WebSide/WebServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/WebSide/WebServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/Aggregator.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/Application.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/WebClient.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/SearchWebApp/WebServer/WebServer.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/generalTesting/test.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/generalTesting/test.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/testTransmitting/MyClass.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/testTransmitting/Receiver.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/testTransmitting/Sender.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/GRPCConnection/GRPCClient/GRPCClient$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/GRPCConnection/GRPCClient/GRPCClient.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/GRPCConnection/GRPCClient/GRPCClient.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/GRPCConnection/GRPCClient/GRPCClient.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/GRPCConnection/GRPCClient/GRPCClient.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/WebSide/WebClient.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/WebSide/WebClient.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/WebSide/WebServer$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/WebSide/WebServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/WebSide/WebServer.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/WebSide/WebServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/WebSide/WebServer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator$1.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/Coordinator.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry$1.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/Aggregator.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/Application.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/SearchWebApp/WebClient/WebClient.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/SearchWebApp/WebServer/WebServer$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/SearchWebApp/WebServer/WebServer.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/generalTesting/test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/generalTesting/test.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/testTransmitting/MyClass.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/testTransmitting/Receiver.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/org/AutoHealerAndClusterSearch/testTransmitting/Sender.class" beforeDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
...@@ -192,23 +172,22 @@ ...@@ -192,23 +172,22 @@
</map> </map>
</option> </option>
</component> </component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Working as Strings, no json, problem in coordinator address" />
<option name="LAST_COMMIT_MESSAGE" value="Working as Strings, no json, problem in coordinator address" />
</component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
<breakpoints> <breakpoints>
<line-breakpoint enabled="true" type="java-line"> <line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/WebSide/WebClient.java</url> <url>file://$PROJECT_DIR$/src/main/java/WebSide/WebServer.java</url>
<line>27</line> <line>85</line>
<option name="timeStamp" value="11" /> <option name="timeStamp" value="22" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/WebSide/WebClient.java</url>
<line>32</line>
<option name="timeStamp" value="20" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="java-line"> <line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/org/AutoHealerAndClusterSearch/AutoHealerAndClusterSearch/ServiceRegistry.java</url> <url>file://$PROJECT_DIR$/src/main/java/GRPCConnection/GRPCClient/GRPCClient.java</url>
<line>74</line> <line>37</line>
<option name="timeStamp" value="21" /> <option name="timeStamp" value="24" />
</line-breakpoint> </line-breakpoint>
</breakpoints> </breakpoints>
</breakpoint-manager> </breakpoint-manager>
......
This diff is collapsed.
package GRPCConnection;
import org.AutoHealerAndClusterSearch.AutoHealerAndClusterSearch.Application;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.checkerframework.checker.units.qual.A;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.List;
public class AddressProxy implements Watcher
{
private static final String address = "192.168.184.10:2181";
private static final int SESSION_TIMEOUT = 3000; //dead client
private static final String COORDINATOR_ZNODE_PATH = "/coordinator_node";
private ZooKeeper zooKeeper;
private String IP;
private final Logger logger = LoggerFactory.getLogger(AddressProxy.class);
public static AddressProxy start() throws IOException, InterruptedException {
AddressProxy addressProxy = new AddressProxy();
ZooKeeper zooKeeper = addressProxy.connectToZookeeper();
//addressProxy.run();
//addressProxy.close();
return addressProxy;
}
private synchronized void updateAddress() throws InterruptedException, KeeperException
{
List<String> temp = zooKeeper.getChildren(COORDINATOR_ZNODE_PATH , this);
if (temp.isEmpty()) return;
String node = temp.get(0);
node = COORDINATOR_ZNODE_PATH + "/" + node;
Stat stat = zooKeeper.exists(node , false);
IP = new String(zooKeeper.getData(node , false , stat));
IP = IP.split(":")[0];
}
public String getAddress() throws InterruptedException, KeeperException
{
if (IP==null)
{
updateAddress();
}
return IP;
}
@Override
public void process(WatchedEvent watchedEvent) {
switch (watchedEvent.getType())
{
case NodeChildrenChanged ->
{
try {
updateAddress();
} catch (InterruptedException | KeeperException e)
{
logger.error("Error Updating Coordinator address in Proxy");
throw new RuntimeException(e);
}
}
}
}
public ZooKeeper connectToZookeeper() throws IOException
{
this.zooKeeper = new ZooKeeper(address, SESSION_TIMEOUT, this);
return zooKeeper;
}
public void run() throws InterruptedException {
synchronized (zooKeeper) {
zooKeeper.wait();
}
}
private void close() throws InterruptedException {
this.zooKeeper.close();
}
}
...@@ -2,6 +2,7 @@ package GRPCConnection.GRPCClient; ...@@ -2,6 +2,7 @@ package GRPCConnection.GRPCClient;
import GRPCConnection.AddressProxy;
import io.grpc.ManagedChannel; import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder; import io.grpc.ManagedChannelBuilder;
import org.AutoHealerAndClusterSearch.AutoHealerAndClusterSearch.Coordinator; import org.AutoHealerAndClusterSearch.AutoHealerAndClusterSearch.Coordinator;
...@@ -13,6 +14,7 @@ import org.apache.zookeeper.WatchedEvent; ...@@ -13,6 +14,7 @@ import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat; import org.apache.zookeeper.data.Stat;
import org.checkerframework.checker.units.qual.A;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
...@@ -23,14 +25,11 @@ import java.util.List; ...@@ -23,14 +25,11 @@ import java.util.List;
* */ * */
public class GRPCClient public class GRPCClient
{ {
private String COORDINATOR_ADDRESS; public List<String> search(String query , String ip) throws InterruptedException, KeeperException
public List<String> search(String query) throws InterruptedException, KeeperException
{ {
COORDINATOR_ADDRESS = Coordinator.getIP();
ManagedChannel channel = ManagedChannelBuilder. ManagedChannel channel = ManagedChannelBuilder.
forAddress("localhost" , 6565). forAddress(ip, 6565).
usePlaintext().build(); usePlaintext().build();
SearchServiceGrpc.SearchServiceBlockingStub stub = SearchServiceGrpc.newBlockingStub(channel); SearchServiceGrpc.SearchServiceBlockingStub stub = SearchServiceGrpc.newBlockingStub(channel);
......
package WebSide; package WebSide;
import GRPCConnection.AddressProxy;
import GRPCConnection.GRPCClient.GRPCClient; import GRPCConnection.GRPCClient.GRPCClient;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.Headers;
...@@ -10,6 +11,7 @@ import org.apache.zookeeper.KeeperException; ...@@ -10,6 +11,7 @@ import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
...@@ -22,6 +24,7 @@ public class WebServer ...@@ -22,6 +24,7 @@ public class WebServer
{ {
private final String Search_EndPoint = "/search"; private final String Search_EndPoint = "/search";
private GRPCClient grpcClient; private GRPCClient grpcClient;
private AddressProxy addressProxy;
private static final Logger logger = LoggerFactory.getLogger(WebServer.class); private static final Logger logger = LoggerFactory.getLogger(WebServer.class);
private final int port; private final int port;
private HttpServer server; private HttpServer server;
...@@ -30,6 +33,7 @@ public class WebServer ...@@ -30,6 +33,7 @@ public class WebServer
{ {
this.port = port; this.port = port;
grpcClient = new GRPCClient(); grpcClient = new GRPCClient();
addressProxy = AddressProxy.start();
} }
public static void main(String[] args) throws IOException, InterruptedException { public static void main(String[] args) throws IOException, InterruptedException {
int serverPort = 5566; int serverPort = 5566;
...@@ -78,7 +82,8 @@ public class WebServer ...@@ -78,7 +82,8 @@ public class WebServer
List<String> files = new ArrayList<>(); List<String> files = new ArrayList<>();
try try
{ {
files = grpcClient.search(query); String o = addressProxy.getAddress();
files = grpcClient.search(query , o);
} }
catch (InterruptedException | KeeperException e) catch (InterruptedException | KeeperException e)
{ {
......
...@@ -19,7 +19,6 @@ import java.util.stream.Stream; ...@@ -19,7 +19,6 @@ import java.util.stream.Stream;
public class Coordinator public class Coordinator
{ {
private static String ipAdress;
private static String FILES_DIRECTORY = System.getProperty("user.dir") + "/SearchFiles/";; private static String FILES_DIRECTORY = System.getProperty("user.dir") + "/SearchFiles/";;
private static final Logger logger = LoggerFactory.getLogger(Coordinator.class); private static final Logger logger = LoggerFactory.getLogger(Coordinator.class);
...@@ -43,12 +42,6 @@ public class Coordinator ...@@ -43,12 +42,6 @@ public class Coordinator
return answer; return answer;
} }
public static String getIP()
{
ipAdress = ServiceRegistry.getCoordinatorAddress();
return ipAdress;
}
private static SearchQueryResponse sendRequestToNode(SearchQueryRequest searchQueryRequest, String ipAddress) private static SearchQueryResponse sendRequestToNode(SearchQueryRequest searchQueryRequest, String ipAddress)
{ {
SearchQueryResponse searchQueryResponse = null; SearchQueryResponse searchQueryResponse = null;
......
...@@ -19,12 +19,10 @@ public class ServiceRegistry implements Watcher ...@@ -19,12 +19,10 @@ public class ServiceRegistry implements Watcher
private static final String COORDINATOR_ZNODE_PATH = "/coordinator_node"; private static final String COORDINATOR_ZNODE_PATH = "/coordinator_node";
private final Logger logger = LoggerFactory.getLogger(ServiceRegistry.class); private final Logger logger = LoggerFactory.getLogger(ServiceRegistry.class);
private final ZooKeeper zooKeeper; private final ZooKeeper zooKeeper;
private Coordinator coordinator = null;
private TransientWorker transientWorker = null; private TransientWorker transientWorker = null;
private String currentZnode = null; private String currentZnode = null;
private static List<String> allServiceAddresses = null; private static List<String> allServiceAddresses = null;
private static String Coordinator_Address;
public ServiceRegistry(ZooKeeper zooKeeper) public ServiceRegistry(ZooKeeper zooKeeper)
{ {
...@@ -72,16 +70,10 @@ public class ServiceRegistry implements Watcher ...@@ -72,16 +70,10 @@ public class ServiceRegistry implements Watcher
this.currentZnode = zooKeeper.create(COORDINATOR_ZNODE_PATH + "/coordinator_", metadata.getBytes(), this.currentZnode = zooKeeper.create(COORDINATOR_ZNODE_PATH + "/coordinator_", metadata.getBytes(),
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL); ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
logger.info("Registered to be Coordinator and I am Master !"); logger.info("Registered to be Coordinator and I am Master !");
Coordinator_Address = metadata.split(":")[0]; //Coordinator coordinator = new Coordinator();
GRPCServiceStart.start();
/*Thread thread = new Thread(()-> new Runnable() {
@Override
public void run() {
GRPCServiceStart.start(); GRPCServiceStart.start();
} }
});
thread.start();*/
}
public void registerForUpdates() { public void registerForUpdates() {
try try
{ {
...@@ -141,10 +133,7 @@ public class ServiceRegistry implements Watcher ...@@ -141,10 +133,7 @@ public class ServiceRegistry implements Watcher
{ {
return allServiceAddresses; return allServiceAddresses;
} }
public static String getCoordinatorAddress()
{
return Coordinator_Address;
}
@Override @Override
public void process(WatchedEvent watchedEvent) public void process(WatchedEvent watchedEvent)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment