diff --git a/README.md b/README.md index 9447619..ee2407c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Java Programs -## by Antonio Maulucci +## by [Antonio Maulucci](https://sites.google.com/view/antomau "Antonio Maulucci") -![enter image description here](https://camo.githubusercontent.com/156e6da163c7b658e3386428706f5f80d18a4445/68747470733a2f2f7333302e706f7374696d672e6f72672f707537327a6a75626c2f4a6176615f6c6f676f5f69636f6e2e706e67) +JavaLogo In this repo you can find my programs written in Java. You can use it to learn Java or to know how to program it. @@ -18,22 +18,47 @@ In this repo you can find my programs written in Java. You can use it to learn J ---------- -| ![zip](http://www.freeiconspng.com/download/6853) | See the **java-master.zip** file to have more programs! | +| JavaLogo | See the **java-master.zip** file to have more programs! | |--|--| + ---------- +## Compile manually... + +directory: + +JavaLogo + +`$ cd {path}/directory ` + +```bash +javac -cp .\src\ .\src\MyMauloJ\Objects\Pollo.java +javac -cp .\src\ .\src\MyMauloJ\Classes\Main.java +cd src + +java -cp . MyMauloJ.Classes.Main +``` + +where **main.java** is: +```java +package MyMauloJ.Classes; +//... +//... +``` + +------------ + + ### How to edit *.md files to edit *.md files you can use: +[Pandao](https://pandao.github.io/) [Classeur](https://app.classeur.io) - [StackEdit](https://stackedit.io) - [Dillinger](http://dillinger.io/) [Dillinger CheatSheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) - [LearnXinYminutes](https://learnxinyminutes.com/docs/it-it/markdown/) diff --git a/java_quarkus_api/A.java b/java_quarkus_api/A.java new file mode 100644 index 0000000..d5329ba --- /dev/null +++ b/java_quarkus_api/A.java @@ -0,0 +1,28 @@ +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.MediaType; + +@Path("/api/a") +public class ClassAController { + + @Inject + ClassBService classBService; + + @POST + @Path("/callB") + @Consumes(MediaType.TEXT_PLAIN) + public String callClassB(String request) { + // Chiamare il servizio della Classe B + return "Response from Class B: " + classBService.callClassA(request); + } + + @POST + @Path("/postMethod") + @Consumes(MediaType.TEXT_PLAIN) + public String postMethod(String data) { + return "Class A received POST request with data: " + data; + } +} + diff --git a/java_quarkus_api/B.java b/java_quarkus_api/B.java new file mode 100644 index 0000000..9eac434 --- /dev/null +++ b/java_quarkus_api/B.java @@ -0,0 +1,28 @@ +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.MediaType; + +@Path("/api/b") +public class ClassBController { + + @Inject + ClassAService classAService; + + @POST + @Path("/callA") + @Consumes(MediaType.TEXT_PLAIN) + public String callClassA(String request) { + // Chiamare il servizio della Classe A + return "Response from Class A: " + classAService.callClassB(request); + } + + @POST + @Path("/postMethod") + @Consumes(MediaType.TEXT_PLAIN) + public String postMethod(String data) { + return "Class B received POST request with data: " + data; + } +} + diff --git a/java_quarkus_api/ClassAservice.java b/java_quarkus_api/ClassAservice.java new file mode 100644 index 0000000..ddc85e5 --- /dev/null +++ b/java_quarkus_api/ClassAservice.java @@ -0,0 +1,15 @@ +import javax.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class ClassAService { + + public String callClassB(String request) { + // Implementa la logica e chiamata dell'endpoint della Classe B + return "Response from Class B Service: " + request; + } + + public String postMethod(String data) { + return "Class A Service received POST request with data: " + data; + } +} + diff --git a/java_quarkus_api/ClassBService.java b/java_quarkus_api/ClassBService.java new file mode 100644 index 0000000..78f21f6 --- /dev/null +++ b/java_quarkus_api/ClassBService.java @@ -0,0 +1,15 @@ +import javax.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class ClassBService { + + public String callClassA(String request) { + // Implementa la logica e chiamata dell'endpoint della Classe A + return "Response from Class A Service: " + request; + } + + public String postMethod(String data) { + return "Class B Service received POST request with data: " + data; + } +} + diff --git a/java_quarkus_api/chiamate.sh b/java_quarkus_api/chiamate.sh new file mode 100644 index 0000000..eed2156 --- /dev/null +++ b/java_quarkus_api/chiamate.sh @@ -0,0 +1,6 @@ +# Esempio di richiesta POST a Class A postMethod +curl -X POST -H "Content-Type: text/plain" -d "Data for POST" http://localhost:8080/api/a/postMethod + +# Esempio di richiesta POST a Class B postMethod +curl -X POST -H "Content-Type: text/plain" -d "Data for POST" http://localhost:8080/api/b/postMethod + diff --git a/java_quarkus_api/full/appA/ClassAClient.java b/java_quarkus_api/full/appA/ClassAClient.java new file mode 100644 index 0000000..f040fa7 --- /dev/null +++ b/java_quarkus_api/full/appA/ClassAClient.java @@ -0,0 +1,17 @@ +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +@RegisterRestClient +public interface ClassAClient { + + @POST + @Path("/api/a/postFromB") + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + String postFromBToA(String data); +} + diff --git a/java_quarkus_api/full/appA/ClassAController.java b/java_quarkus_api/full/appA/ClassAController.java new file mode 100644 index 0000000..d80c436 --- /dev/null +++ b/java_quarkus_api/full/appA/ClassAController.java @@ -0,0 +1,37 @@ +import javax.inject.Inject; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; + +@Path("/api/a") +public class ClassAController { + + @Inject + ClassBClient classBClient; + + @GET + @Path("/getFromB") + @Produces(MediaType.TEXT_PLAIN) + public String getFromB() { + // Chiamata GET a ClassB + return "Response from ClassB: " + classBClient.getDataFromB(); + } + + @POST + @Path("/postToB") + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String postToB(String data) { + // Chiamata POST a ClassB + return "Response from ClassB: " + classBClient.postDataToB(data); + } + + @POST + @Path("/postFromB") + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String postFromB(String data) { + // Metodo POST chiamato da ClassB + return "Received POST request from ClassB with data: " + data; + } +} + diff --git a/java_quarkus_api/full/appB/ClassBController.java b/java_quarkus_api/full/appB/ClassBController.java new file mode 100644 index 0000000..0922238 --- /dev/null +++ b/java_quarkus_api/full/appB/ClassBController.java @@ -0,0 +1,37 @@ +import javax.inject.Inject; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; + +@Path("/api/b") +public class ClassBController { + + @Inject + ClassAClient classAClient; + + @GET + @Path("/getFromA") + @Produces(MediaType.TEXT_PLAIN) + public String getFromA() { + // Chiamata GET a ClassA + return "Response from ClassA: " + classAClient.getDataFromA(); + } + + @POST + @Path("/postToA") + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String postToA(String data) { + // Chiamata POST a ClassA + return "Response from ClassA: " + classAClient.postDataToA(data); + } + + @POST + @Path("/postToAFromB") + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String postToAFromB(String data) { + // Chiamata POST a ClassA dal metodo di ClassB + return "Response from ClassA: " + classAClient.postFromBToA(data); + } +} + diff --git a/java_quarkus_api/full/call.sh b/java_quarkus_api/full/call.sh new file mode 100644 index 0000000..f6cc9d6 --- /dev/null +++ b/java_quarkus_api/full/call.sh @@ -0,0 +1,2 @@ +curl -X POST -H "Content-Type: text/plain" -d "Data from ClassB to ClassA" http://localhost:8081/api/b/postToAFromB + diff --git a/java_springboot_api/A.java b/java_springboot_api/A.java new file mode 100644 index 0000000..e73b1c4 --- /dev/null +++ b/java_springboot_api/A.java @@ -0,0 +1,23 @@ +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@RestController +@RequestMapping("/api/a") +public class ClassAController { + + @Autowired + private RestTemplate restTemplate; + + @PostMapping("/callB") + public String callClassB(@RequestBody String request) { + // Chiamare l'endpoint della Classe B tramite POST + ResponseEntity responseFromB = restTemplate.postForEntity("http://localhost:8080/api/b/callA", request, String.class); + return "Response from Class B: " + responseFromB.getBody(); + } +} + diff --git a/java_springboot_api/B.java b/java_springboot_api/B.java new file mode 100644 index 0000000..a20e44f --- /dev/null +++ b/java_springboot_api/B.java @@ -0,0 +1,22 @@ +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@RestController +@RequestMapping("/api/b") +public class ClassBController { + + @Autowired + private RestTemplate restTemplate; + + @PostMapping("/callA") + public String callClassA(@RequestBody String request) { + // Chiamare l'endpoint della Classe A tramite POST + String responseFromA = restTemplate.postForObject("http://localhost:8080/api/a/callB", request, String.class); + return "Response from Class A: " + responseFromA; + } +} + diff --git a/java_springboot_api/Main.java b/java_springboot_api/Main.java new file mode 100644 index 0000000..12a8813 --- /dev/null +++ b/java_springboot_api/Main.java @@ -0,0 +1,23 @@ +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@SpringBootApplication +public class RestCallingApplication { + + public static void main(String[] args) { + SpringApplication.run(RestCallingApplication.class, args); + } + + @Configuration + public static class AppConfig { + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } + } +} + diff --git a/java_springboot_api/pom.xml b/java_springboot_api/pom.xml new file mode 100644 index 0000000..37e6e5e --- /dev/null +++ b/java_springboot_api/pom.xml @@ -0,0 +1,5 @@ + + org.springframework.boot + spring-boot-starter-web + + diff --git a/readme/null b/readme/null new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/readme/null @@ -0,0 +1 @@ + diff --git a/readme/z1.jpg b/readme/z1.jpg new file mode 100644 index 0000000..b258e58 Binary files /dev/null and b/readme/z1.jpg differ