diff --git a/.gitignore b/.gitignore
index bcf882b..14446e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,5 @@
/bin/
/target/
CVS/
+
+.vscode/
diff --git a/pom.xml b/pom.xml
index 6611688..7309847 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,13 @@
org.springframework
spring-webmvc
${springframework.version}
-
+
+
+
+ org.json
+ json
+ 20200518
+
@@ -115,6 +121,31 @@
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+
+
+ org.midas.ms.MasServer
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
diff --git a/src/main/java/org/midas/metainfo/NativeComponentInfo.java b/src/main/java/org/midas/metainfo/NativeComponentInfo.java
index 49968a5..f3e7bae 100644
--- a/src/main/java/org/midas/metainfo/NativeComponentInfo.java
+++ b/src/main/java/org/midas/metainfo/NativeComponentInfo.java
@@ -35,7 +35,7 @@ public String toString()
{
String aux="";
- aux+= ("• Component: "+getName()+"\n\n");
+ aux+= ("Component: "+getName()+"\n\n");
aux+= ("Protocol: \n - ");
aux+= (getProtocol()+"\n\n");
aux+= ("Package: \n - ");
diff --git a/src/main/java/org/midas/metainfo/ServiceInfo.java b/src/main/java/org/midas/metainfo/ServiceInfo.java
index 6d82be7..3112a7d 100644
--- a/src/main/java/org/midas/metainfo/ServiceInfo.java
+++ b/src/main/java/org/midas/metainfo/ServiceInfo.java
@@ -17,16 +17,18 @@ public class ServiceInfo implements Comparable,Serializable
private String path;
private String scope;
private String description;
+ private String port;
private EntityInfo entity;
private Set parameters = new TreeSet();
- public ServiceInfo(String name,String path,String scope,String description,EntityInfo entity)
+ public ServiceInfo(String name,String path,String scope,String description, String port,EntityInfo entity)
{
this.name = new String(name);
this.path = new String(path);
this.scope = new String(scope);
this.description = new String(description);
+ this.port = port;
this.entity = entity;
}
@@ -57,6 +59,14 @@ public EntityInfo getEntity()
{
return (entity);
}
+
+ public String getPort() {
+ return this.port;
+ }
+
+ public void setPort(String port) {
+ this.port = port;
+ }
public Set getParameters()
{
diff --git a/src/main/java/org/midas/metainfo/WebServiceComponentInfo.java b/src/main/java/org/midas/metainfo/WebServiceComponentInfo.java
index 206311d..84c5241 100644
--- a/src/main/java/org/midas/metainfo/WebServiceComponentInfo.java
+++ b/src/main/java/org/midas/metainfo/WebServiceComponentInfo.java
@@ -28,7 +28,7 @@ public String toString()
{
String aux="";
- aux+= ("• Component: "+getName()+"\n\n");
+ aux+= ("Component: "+getName()+"\n\n");
aux+= ("Protocol: \n - ");
aux+= (getProtocol()+"\n\n");
aux+= ("Url: \n - ");
diff --git a/src/main/java/org/midas/ms/trader/Trader.java b/src/main/java/org/midas/ms/trader/Trader.java
index 852a32c..3d412df 100644
--- a/src/main/java/org/midas/ms/trader/Trader.java
+++ b/src/main/java/org/midas/ms/trader/Trader.java
@@ -87,6 +87,25 @@ else if (requisitionType.equals("verify"))
{
verifyRequest(req,res);
}
+ else if (requisitionType.equals("deregister"))
+ {
+ try
+ {
+ deregisterRequest(req,res);
+ }
+ catch (CatalogException e)
+ {
+ e.printStackTrace();
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ catch (ClassNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ }
else
{
throw new IOException("Invalid Requisition - Expected parameter 'type' with requisition type {register,verify,provide,ping}");
@@ -127,7 +146,7 @@ private void verifyRequest(HttpServletRequest req, HttpServletResponse res) thro
private void provideRequest(HttpServletRequest req, HttpServletResponse res) throws IOException
{
// Serviço
- HashMap in;
+ Object in;
String service;
String organization;
@@ -157,7 +176,7 @@ private void provideRequest(HttpServletRequest req, HttpServletResponse res) thr
requirer = ois.readUTF();
organization = ois.readUTF();
service = ois.readUTF();
- in = (HashMap)ois.readObject();
+ in = ois.readObject();
}
catch (ClassNotFoundException e)
{
@@ -176,7 +195,7 @@ private void provideRequest(HttpServletRequest req, HttpServletResponse res) thr
endTime = System.currentTimeMillis();
// Logando Resultados
- LOG.warn("Unknown service required - Timing: "+(endTime-startTime)+"ms - Requirer: not found - Provider: not found | "+message,false);
+ LOG.warn("Unknown service required - Timing: "+(endTime-startTime)+"ms - Requirer: not found - Provider: not found | "+message,e);
return;
}
@@ -401,6 +420,33 @@ private void registerRequest(HttpServletRequest req, HttpServletResponse res) th
ManagerScreen.userInterfaceEvent("Refresh Services");
}
+ private void deregisterRequest(HttpServletRequest req, HttpServletResponse res) throws IOException, ClassNotFoundException, CatalogException
+ {
+ Object data;
+
+ // Recuperando Entrada da Requisição
+ ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(req.getInputStream()));
+ data = in.readObject();
+
+ in.close();
+
+ // Construindo Resposta da Requisição
+ res.setStatus(HttpServletResponse.SC_OK);
+
+ ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(res.getOutputStream()));
+
+ oos.writeUTF("registered");
+ oos.flush();
+ oos.close();
+
+ // Tratando Objeto Recebido
+ // TODO: Delegar responsabilidade de notificação do ManagerScreen ao Catalog
+ ContainerInfo containerData = (ContainerInfo)data;
+
+ Catalog.removeContainer(containerData);
+ LOG.info("Container '"+containerData.getName()+"' has been removed from MAS");
+ }
+
public static boolean ping(ContainerInfo container)
{
try