Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dal dev #16

Merged
merged 10 commits into from
Jun 12, 2020
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions com.clms.typhonapi/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -94,16 +94,16 @@
<artifactId>mariadb-java-client</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>io.springfox</groupId>-->
<!-- <artifactId>springfox-swagger2</artifactId>-->
<!-- <version>2.8.0</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>io.springfox</groupId>-->
<!-- <artifactId>springfox-swagger-ui</artifactId>-->
<!-- <version>2.8.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
Expand Down Expand Up @@ -141,8 +141,13 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>

</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>

</dependencies>

<properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class SwaggerJsonConfiguration {

@Bean
public SwaggerJson swaggerConfiguration(
@Value("app/resources/swagger.json") String location,
@Value("src/main/resources/swagger.json") String location,
@Qualifier("webApplicationContext") ResourceLoader loader) throws IOException {

InputStream istream = getResource(location, loader);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.io.File;
Expand All @@ -36,6 +37,7 @@

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
Expand Down Expand Up @@ -336,4 +338,38 @@ public ResponseEntity Restore(@RequestBody Map<String,String> json){

}

//create a new instance of an entity of ML
@RequestMapping(
path = "/crud/{entity}",
method = RequestMethod.POST
)
public ResponseEntity cEntity(@PathVariable String entity, @RequestBody Map<String, Object> jsonBody) {
return queryRunner.postEntity(entity, jsonBody);
}

//read, update and delete an instance of an entity of ML
@RequestMapping(
path = "/crud/{entity}/{id}",
method = RequestMethod.GET
)
public ResponseEntity rEntity(@PathVariable String entity, @PathVariable String id) {
return queryRunner.getEntity(entity, id);
}

@RequestMapping(
path = "/crud/{entity}/{id}",
method = RequestMethod.PATCH
)
public ResponseEntity uEntity(@PathVariable String entity, @PathVariable String id, @RequestBody Map<String, Object> jsonBody) {
return queryRunner.patchEntity(entity, id, jsonBody);
}

@RequestMapping(
path = "/crud/{entity}/{id}",
method = RequestMethod.DELETE
)
public ResponseEntity dEntity(@PathVariable String entity, @PathVariable String id) {
return queryRunner.deleteEntity(entity, id);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

import com.clms.typhonapi.storage.ModelStorage;

import com.google.gson.Gson;
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.util.JSONPObject;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
Expand Down Expand Up @@ -97,7 +99,7 @@ else if(type==DatabaseType.MysqlDb){
}
//TODO: initialize query engine with xmi and dbConnections
/* try {
String uri = "http://typhonql-server:7000/initialize";
String uri = "http://localhost:7000/initialize";
OrfenCLMS marked this conversation as resolved.
Show resolved Hide resolved
Map<String, Object> vars = new HashMap<String, Object>();
vars.put("xmi", mlModel.getContents());
vars.put("databaseInfo",infos);
Expand Down Expand Up @@ -326,8 +328,8 @@ else if(recevent.isAuthenticated() == true){
//connection = new XMIPolystoreConnection(mlModel.getContents(), infos);
System.out.println(result.getBody());
return result;
}
}
}



Expand Down Expand Up @@ -404,24 +406,135 @@ private ResponseEntity<String> executeUpdate(String query){
}

private ResponseEntity<String> executePreparedUpdate(Map<String, Object> json){
String uri = "http://localhost/preparedUpdate";
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);;
String uri = "http://typhonql-server:7000/preparedUpdate";
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
json.put("xmi", ml.getContents());
json.put("databaseInfo",infos);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_ENCODING, "gzip");
headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip");
HttpEntity<Map<String,Object>> request =
new HttpEntity<>(json, headers);
HttpEntity<Map<String,Object>> request = new HttpEntity<>(json, headers);
ResponseEntity<String> result = restTemplate.postForEntity(uri,request,String.class);

if (result.getStatusCode() == HttpStatus.OK) {
isReady = true;
System.out.println("prepared update query executed successfully");

} else {
}
else {
System.out.println("error in query");
isReady=false;
}
return result;
}



//To POST a new Entity
public ResponseEntity<String> postEntity (String entity, Map<String, Object> jsonBody){
String uri = "http://typhonql-server:7000/crud/" + entity;

Map<String, Object> vars = new HashMap<String, Object>();
vars.put("xmi", ml.getContents());
vars.put("databaseInfo",infos);
Gson gson = new Gson();
String qlRestArgsValue = gson.toJson(vars);

RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_ENCODING, "gzip");
headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip");
headers.add("QL-RestArguments", qlRestArgsValue);

HttpEntity<Map<String,Object>> request = new HttpEntity<>(jsonBody, headers);
ResponseEntity<String> result = restTemplate.postForEntity(uri,request,String.class);

if (result.getStatusCode() == HttpStatus.OK) {
System.out.println("POST request was executed successfully");
}
else {
System.out.println("Error in request");
}
return result;
}

//To GET an existing Entity
public ResponseEntity<String> getEntity (String entity, String id){
String uri = "http://typhonql-server:7000/crud/" + entity + "/" + id;

Map<String, Object> vars = new HashMap<String, Object>();
vars.put("xmi", ml.getContents());
vars.put("databaseInfo",infos);
Gson gson = new Gson();
String qlRestArgsValue = gson.toJson(vars);
// System.out.println("The headerSomething is: " + headersSomething);
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);

HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_ENCODING, "gzip");
headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip");
headers.add("QL-RestArguments", qlRestArgsValue);
HttpEntity<Map<String,Object>> request = new HttpEntity<>(headers);
ResponseEntity<String> result = restTemplate.exchange(uri,HttpMethod.GET,request,String.class);

if (result.getStatusCode() == HttpStatus.OK) {
System.out.println("GET request was executed successfully");
}
else {
System.out.println("Error in request");
}
return result;
}

//To PATCH an existing Entity
public ResponseEntity<String> patchEntity (String entity, String id, Map<String, Object> jsonBody){
String uri = "http://typhonql-server:7000/crud/" + entity + "/" + id;

Map<String, Object> vars = new HashMap<String, Object>();
vars.put("xmi", ml.getContents());
vars.put("databaseInfo",infos);
Gson gson = new Gson();
String qlRestArgsValue = gson.toJson(vars);

RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_ENCODING, "gzip");
headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip");
headers.add("QL-RestArguments", qlRestArgsValue);
HttpEntity<Map<String,Object>> request = new HttpEntity<>(jsonBody, headers);
ResponseEntity<String> result = restTemplate.exchange(uri,HttpMethod.PATCH,request,String.class);

if (result.getStatusCode() == HttpStatus.OK) {
System.out.println("PATCH request was executed successfully");
}
else {
System.out.println("Error in request");
}
return result;
}

//To DELETE an existing Entity
public ResponseEntity<String> deleteEntity (String entity, String id){
String uri = "http://typhonql-server:7000/crud/" + entity + "/" + id;

Map<String, Object> vars = new HashMap<String, Object>();
vars.put("xmi", ml.getContents());
vars.put("databaseInfo",infos);
Gson gson = new Gson();
String qlRestArgsValue = gson.toJson(vars);

RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_ENCODING, "gzip");
headers.add(HttpHeaders.ACCEPT_ENCODING, "gzip");
headers.add("QL-RestArguments", qlRestArgsValue);
HttpEntity<Map<String,Object>> request = new HttpEntity<>(headers);
ResponseEntity<String> result = restTemplate.exchange(uri,HttpMethod.DELETE,request,String.class);

if (result.getStatusCode() == HttpStatus.OK) {
System.out.println("DELETE request was executed successfully");
}
else {
System.out.println("Error in request");
}
return result;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
spring.data.mongodb.uri= mongodb://admin:admin@polystore-mongo:27017/admin
spring.data.mongodb.repositories.enabled=true
spring.data.mongodb.repositories.type=auto
55 changes: 16 additions & 39 deletions com.clms.typhonapi/typhon-polystore-api.iml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,7 @@
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration>
<fileset id="fileset" name="Mongobean" removed="false">
<file>file://$MODULE_DIR$/src/main/java/com/clms/typhonapi/mongobean.xml</file>
<file>file://$MODULE_DIR$/src/main/java/com/clms/typhonapi/config/MongoDbSettings.java</file>
</fileset>
</configuration>
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
Expand All @@ -25,25 +20,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.0-alpha1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:2.0.0-alpha0" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
Expand Down Expand Up @@ -148,20 +124,6 @@
<orderEntry type="library" name="Maven: org.mongodb:bson:3.12.0" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.mariadb.jdbc:mariadb-java-client:2.4.1" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.12" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka_2.12:2.2.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8" level="project" />
<orderEntry type="library" name="Maven: net.sf.jopt-simple:jopt-simple:5.0.4" level="project" />
Expand All @@ -186,9 +148,24 @@
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.flink:force-shading:1.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.12" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.sf.jsqlparser:jsqlparser:0.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.8" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.11" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20200518" level="project" />
</component>
</module>