Skip to content
Snippets Groups Projects
Commit ba9c8244 authored by Alfredo Chissotti's avatar Alfredo Chissotti
Browse files

unarchived domain

parent c4f0423e
Branches
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/home/ale/Scaricati/hibernate-core-6.0.2.Final.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Domain</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=11
package code;
import java.io.IOException;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class Domain {
static public int port=3000;
public static void main(String[] args) throws IOException {
if(args.length>1 && args[0].equals("-port")) try {
port = Integer.parseInt(args[1]);
}
catch (Exception e) {
e.printStackTrace();
}
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor)Executors.newFixedThreadPool(5);
HttpServer server=HttpServer.create(new InetSocketAddress(port),0);
server.setExecutor(threadPoolExecutor);
//server.createContext("/", new RootHandler(port));
//server.createContext("/index", new IndexHandler());
//install-start-stop-delete
server.createContext("/install", new InstallHandler());
//server.createContext("/start", new StartHandler());
//server.createContext("/stop", new StopHandler());
//server.createContext("/delete", new DeleteHandler());
server.start();
}
}
package code;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
//import StuffHandler.CustomObject;
import java.nio.file.Files;
import java.nio.file.Path;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpPrincipal;
import java.io.*;
import java.util.*;
import java.net.URI;
import java.net.URL;
import java.net.URLDecoder;
public class InstallHandler implements HttpHandler{
@Override
public void handle(HttpExchange he) throws IOException {
URI requestedUri = he.getRequestURI();
String requestMethod = he.getRequestMethod();
String response = "";
if (requestMethod.compareTo("POST") == 0 || requestMethod.compareTo("post") == 0) {
InputStream is = he.getRequestBody();
String g = readBody(is);
//BufferedWriter f = new BufferedWriter(new FileWriter(dati, true));//////////////////FIX
String[] s = g.split(":");
//String s0 = "\"" + s[0] + "\"";
//String s1 = "\"" + s[1] + "\"";
//CustomObject o=new CustomObject(s0,s1);
//Boolean trovato=false;
/*for(CustomObject o:cose) {
if(o.nome.compareTo(s0)==0) {
trovato=true;
}
}
if(!trovato) {
f.append(s0 + ":" + s1 + "\n");
response = "Done\n";
}
else response="Object already exists!\n";*/
System.out.println(g);
//effettuo chiamata a CloudAppManager
//preso da https://www.baeldung.com/java-http-request
//è una chiamata annidata nella risposta alla webapp
// -richiesta REST da webApp a /install
// -prendo da DB e poi chiamo CloudAppMng su /install
// -attendo risposta da CloudAppMng e chiudo
// -rispondo a webApp e chiudo
// EZ
//
//standard per chiamata in slide
//https://www.dir.uniupo.it/pluginfile.php/948883/mod_resource/content/1/FrameworkProgetto5.pdf
//
//http://127.0.0.1:8080/install
URL url = new URL("http://127.0.0.1:3000");//maybe, se CloudAppe è in localhost porta 8080
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
Map<String, String> parameters = new HashMap<>();
parameters.put("param1", "val");//fix parametri da mandare
//leggo da DB domini e riempio (magari famo .DAO??)
con.setDoOutput(true);
DataOutputStream out = new DataOutputStream(con.getOutputStream());//inserimento param in call
out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
out.flush();
out.close();
//con.setRequestProperty("Content-Type", "application/json");
//String contentType = con.getHeaderField("Content-Type");
con.setConnectTimeout(5000);
con.setReadTimeout(5000);
//leggo risposta
int status = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
//finita chiamata a CloudApp
//f.close();
OutputStream os = he.getResponseBody();
he.sendResponseHeaders(status, response.length());//status
os.write(response.getBytes());
os.close();
}
}
private String readBody(InputStream requestBody) {
int req;
StringBuffer sb = new StringBuffer();
try {
while ((req = requestBody.read()) != -1)
sb.append(Character.toString((char) req));
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
package code;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Map;
public class ParameterStringBuilder {
public static String getParamsString(Map<String, String> params)
throws UnsupportedEncodingException{
StringBuilder result = new StringBuilder("{\n");
for (Map.Entry<String, String> entry : params.entrySet()) {
result.append("\"");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("\"");
result.append(":");
result.append("\"");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
result.append("\"");
result.append(",\n");
}
result.append("}");
String resultString = result.toString();
return resultString.length() > 0
? resultString.substring(0, resultString.length() - 1)
: resultString;
}
}
package code;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
public class StartHandler implements HttpHandler {
@Override
public void handle(HttpExchange he) throws IOException {
URI requestedUri = he.getRequestURI();
System.out.println(requestedUri.toString());
/*
if(he.getRequestHeaders().get("version")==null) {
he.sendResponseHeaders(426, "VERSIONE NON PRESENTE. (USARE -H version:1.0)".length());
OutputStream os = he.getResponseBody();
os.write("VERSIONE NON PRESENTE. (USARE -H version:1.0)".getBytes());
os.close();
return;
}
else if(he.getRequestHeaders().get("version").get(0).compareTo("1.0")!=0) {
he.sendResponseHeaders(426, "CAMBIA VERSIONE. (USARE -H version:1.0)".length());
OutputStream os = he.getResponseBody();
os.write("CAMBIA VERSIONE. (USARE -H version:1.0)".getBytes());
os.close();
return;
}
*/
String requestMethod = he.getRequestMethod();
String query = requestedUri.getRawQuery();
String body = readBody(he.getRequestBody());
String response = "AYYYYY";
if(requestMethod.compareToIgnoreCase("POST")==0) {
URL url = new URL("http://localhost:3000");//maybe, se CloudApp è in localhost porta 8080
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("version", "1.0");
Map<String, String> parameters = new HashMap<>();
System.out.println("pino1");
parameters.put("param1", "val");//fix parametri da mandare
//leggo da DB domini e riempio (magari famo .DAO??)
con.setDoOutput(true);
System.out.println("pino2");
DataOutputStream out = new DataOutputStream(con.getOutputStream());//inserimento param in call
out.writeBytes(ParameterStringBuilder.getParamsString(parameters));
out.flush();
out.close();
System.out.println("pino3");
//con.setRequestProperty("Content-Type", "application/json");
//String contentType = con.getHeaderField("Content-Type");
con.setConnectTimeout(5000);
con.setReadTimeout(5000);
System.out.println("pino4");
//leggo risposta
int status = con.getResponseCode();
Reader streamReader = null;
if (status > 299) {
System.out.println("pino5");
streamReader = new InputStreamReader(con.getErrorStream());
BufferedReader in = new BufferedReader(streamReader);
String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
response = content.toString();
in.close();
} else {
System.out.println("pino6");
streamReader = new InputStreamReader(con.getInputStream());
BufferedReader in = new BufferedReader(streamReader);
String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
response = content.toString();
in.close();
}
con.disconnect();
he.sendResponseHeaders(status, response.length());
OutputStream os = he.getResponseBody();
os.write(response.getBytes());
os.close();
}
else {
System.out.println("OPERAZIONE NON IMPLEMENTATA");
he.sendResponseHeaders(501,0);
OutputStream os = he.getResponseBody();
os.write("OPERAZIONE NON IMPLEMENTATA".getBytes());
os.close();
}
}
private String readBody(InputStream requestBody) {
int req;
StringBuffer sb = new StringBuffer();
try {
while((req = requestBody.read()) !=-1)
sb.append(Character.toString((char)req));
}
catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment