diff --git a/pom.xml b/pom.xml index 9f7aca9..a884d11 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,26 @@ 42.6.0 + + + + + + org.hibernate + hibernate-core + + + org.glassfish.jaxb + jaxb-runtime + + + + + + io.quarkus + quarkus-jdbc-postgresql + + io.quarkus quarkus-resteasy-reactive-jackson @@ -92,11 +112,13 @@ validation-api 1.0.0.GA - - org.hibernate - hibernate-validator - 4.0.2.GA - + + + jakarta.persistence + jakarta.persistence-api + 3.1.0 + + org.eclipse.microprofile.rest.client diff --git a/src/main/java/dto/ScanInterface.java b/src/main/java/dto/ScanInterface.java new file mode 100644 index 0000000..a435f62 --- /dev/null +++ b/src/main/java/dto/ScanInterface.java @@ -0,0 +1,9 @@ +package dto; + +import java.io.Serializable; + +//interface for the scan objects + +public interface ScanInterface extends Serializable{ + public String constructPayload(); +} \ No newline at end of file diff --git a/src/main/java/dto/ScanObj.java b/src/main/java/dto/ScanObj.java index 090b179..c9f825b 100644 --- a/src/main/java/dto/ScanObj.java +++ b/src/main/java/dto/ScanObj.java @@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized; // import org.jboss.pnc.api.dto.Request; //still need to fix all the scan objects to be significantly less poorly written +//TODO add interface for the scan objects (is probably the cleanest solution) import java.io.Serializable; @ToString diff --git a/src/main/java/rest/CreateGetResource.java b/src/main/java/rest/CreateGetResource.java index f5f532c..8ab6974 100644 --- a/src/main/java/rest/CreateGetResource.java +++ b/src/main/java/rest/CreateGetResource.java @@ -33,9 +33,23 @@ import java.sql.*; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; +// import org.hibernate.EntityManager; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Cacheable; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.QueryHint; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; + // @Path("/api/v1/[osh-scan]") @Path("/scanGet") public class CreateGetResource { + // @Inject + // EntityManager em; CreateScanService createScanService; diff --git a/src/main/java/rest/Scan.java b/src/main/java/rest/Scan.java new file mode 100644 index 0000000..2394c6f --- /dev/null +++ b/src/main/java/rest/Scan.java @@ -0,0 +1,43 @@ +package rest; + +import javax.persistence.Entity; + +public class Scan { + private int scanId; + private String productId; + private String eventId; + private String isManagedService; + private String componentList; + + public int getScanId() { + return scanId; + } + public void setScanId(int scanId) { + this.scanId = scanId; + } + public String getProductId() { + return productId; + } + public void setProductId(String productId) { + this.productId = productId; + } + public String getEventId() { + return eventId; + } + public void setEventId(String eventId) { + this.eventId = eventId; + } + public String getIsManagedService(){ + return isManagedService; + } + public void setIsManagedService(String isManagedService){ + this.isManagedService = isManagedService; + } + public String getComponentList(){ + return componentList; + } + public void setComponentList(String componentList){ + this.componentList = componentList; + } + +} \ No newline at end of file diff --git a/src/main/java/rest/StoreData.java b/src/main/java/rest/StoreData.java new file mode 100644 index 0000000..ae2925e --- /dev/null +++ b/src/main/java/rest/StoreData.java @@ -0,0 +1,124 @@ +package rest; + + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Set; +import dto.ScanObj; +// import dto.ConnectDB; +// import dto.Scan; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.Statement; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import java.util.Set; +import java.util.stream.Collectors; +import javax.inject.Inject; +import javax.ws.rs.Consumes; + +import java.sql.*; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.boot.Metadata; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; + // import org.hibernate.EntityManager; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Cacheable; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.QueryHint; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; + +import org.eclipse.microprofile.rest.client.inject.RestClient; +import dto.ScanObj; + +import javax.inject.Inject; +import javax.validation.Valid; +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PUT; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.json.JSONObject; +import org.json.JSONArray; +import dto.ScanObj; +import dto.ConnectDB; +import dto.ScanObjPayload; + +import javax.ws.rs.PathParam; + +import static constants.HttpHeaders.AUTHORIZATION_STRING; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.Statement; + +@Path("/storeData") +public class StoreData { + + //all of these need cleaning up to be a more sensible soution + // @RestClient + // CreateScanService createScanService; + + @GET + public void Store() { + System.out.println("hmm"); + + //Create typesafe ServiceRegistry object + StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); + + Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build(); + + SessionFactory factory = meta.getSessionFactoryBuilder().build(); + Session session = factory.openSession(); + Transaction t = session.beginTransaction(); + System.out.println("i assume we fail before here?"); + Scan e1=new Scan(); + e1.setScanId(2); + e1.setProductId("1"); + e1.setEventId("Chawla"); + e1.setIsManagedService("aa"); + e1.setComponentList("aaa"); + + session.save(e1); + t.commit(); + System.out.println("successfully saved"); + factory.close(); + session.close(); + + } +} \ No newline at end of file diff --git a/src/main/resources/Scan.hbm.xml b/src/main/resources/Scan.hbm.xml new file mode 100644 index 0000000..73cd545 --- /dev/null +++ b/src/main/resources/Scan.hbm.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 30b269f..eca88b0 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,4 +2,6 @@ # quarkus.rest-client."rest.CreateScanService".scope=javax.inject.Singleton # couchdb.name=scan-results -# couchdb.url=https://localhost:5984 \ No newline at end of file +# couchdb.url=https://localhost:5984 + +# quarkus.hibernate-orm.database.generation=drop-and-create \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..f3621dc --- /dev/null +++ b/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,21 @@ + + + + + + + update + org.hibernate.dialect.PostgreSQLDialect + org.postgresql.Driver + jdbc:postgresql://localhost:5432/mydb + postgres + password + + true + true + + + + \ No newline at end of file