//restituisce la lista di utenti @GET @Path("/getlistanodi") @Produces({"application/json", "application/xml"}) public Response getListaNodi() { return Response.ok(NodiEdge.getInstance()).build(); } @Path("/add") @POST @Consumes({"application/json", "application/xml"}) public Response addNodo(Nodo u) { NodiEdge.getInstance().addNodo(u); return Response.ok().build(); } @Path("/remove/{idnodo}") @DELETE @Produces({"application/json", "application/xml"}) public Response removeNodo(@PathParam("idnodo") String id) { NodiEdge.getInstance().removeNodo(id); return Response.ok().build(); } UploadFilter com.sun.webui.jsf.util.UploadFilter maxSize -1 UploadFilter FacesServlet FacesServlet javax.faces.webapp.FacesServlet 1 ThemeServlet com.sun.webui.theme.ThemeServlet 2 DownloadServlet org.glassfish.admingui.common.servlet.DownloadServlet ContentSources org.glassfish.admingui.common.servlet.LBConfigContentSource, org.glassfish.admingui.common.servlet.ClientStubsContentSource, org.glassfish.admingui.common.servlet.LogFilesContentSource org.glassfish.admingui.common.servlet.LogViewerContentSource contentSourceId LBConfig DownloadServlet /download/* FacesServlet /resource/* FacesServlet /html/* FacesServlet /faces/* FacesServlet *.jsf ThemeServlet /theme/* true jsp text/html /index.jsf javax.faces.application.ViewExpiredException / FORM admin-realm /login.jsf /loginError.jsf admin @XmlElement(name="nodi") private List listaNodi; private static NodiEdge instance; private int distNodi; public NodiEdge() { listaNodi = new ArrayList(); } //singleton public synchronized static NodiEdge getInstance(){ if(instance==null) instance = new NodiEdge(); return instance; } public synchronized List getListaNodi() { return new ArrayList<>(listaNodi); } public synchronized List addNodo(Nodo u) { List copiaLista = getListaNodi(); if (listaNodi.size()==0) listaNodi.add(u); else { for (Nodo n : copiaLista) { if (n.getID().toLowerCase().equals(u.getID().toLowerCase())) { System.err.println("Inserimento negato! Identificatore già esistente."); break; } else { distNodi = Math.abs((u.getX() - n.getX()) + (u.getY() - n.getY())); if (distNodi < 20) { System.err.println("Inserimento negato! Posizione troppo vicina ad altri nodi."); break; } else { listaNodi.add(u); System.out.println("ID nodo: " + n.getID() + ", indirizzo IP: " + n.getIPaddress() + ", n° porta: " + n.getPNd()); } } } } return copiaLista; } public synchronized void removeNodo(String id) { List copiaLista = getListaNodi(); if (listaNodi.size()==0) System.err.println("Operazione impossibile! Nessun nodo nella griglia"); else { for (Nodo n : copiaLista) { if (!n.getID().toLowerCase().equals(id.toLowerCase())) System.err.println("Nodo non presente nella griglia."); else { listaNodi.remove(n); System.out.println("Nodo eliminato."); break; } } }