diff --git a/src/main/java/org/hbp/mip/MIPApplication.java b/src/main/java/org/hbp/mip/MIPApplication.java index 37c7473f430094dbe024dba5b2928d058df12a5e..2ba48af629a20704c80c688d091fa424c493d15e 100644 --- a/src/main/java/org/hbp/mip/MIPApplication.java +++ b/src/main/java/org/hbp/mip/MIPApplication.java @@ -11,9 +11,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import org.apache.log4j.Logger; import org.hbp.mip.model.User; +import org.hbp.mip.repositories.UserRepository; import org.hbp.mip.utils.CORSFilter; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -84,6 +83,9 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { @Autowired OAuth2ClientContext oauth2ClientContext; + @Autowired + UserRepository userRepository; + public static void main(String[] args) { SpringApplication.run(MIPApplication.class, args); @@ -107,26 +109,10 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { * @return */ public synchronized User getUser() { - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); User user = new User(getUserInfos()); - try { - session.beginTransaction(); - Boolean agreeNDA = (Boolean) session - .createQuery("SELECT agreeNDA FROM User WHERE username= :username") - .setString("username", user.getUsername()) - .uniqueResult(); - user.setAgreeNDA(agreeNDA); - session.merge(user); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - + User foundUser = userRepository.findOne(user.getUsername()); + user.setAgreeNDA(foundUser.getAgreeNDA()); + userRepository.save(user); return user; } @@ -173,28 +159,11 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { @RequestMapping(path = "/user", method = RequestMethod.POST) public ResponseEntity<Void> postUser(@ApiParam(value = "Has the user agreed on the NDA") @RequestParam(value = "agreeNDA", required = true) Boolean agreeNDA) { String username = getUser().getUsername(); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try { - session.beginTransaction(); - User user = (User) session - .createQuery("from User where username= :username") - .setString("username", username) - .uniqueResult(); - if (user != null) { - user.setAgreeNDA(agreeNDA); - session.update(user); - } - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + User user = userRepository.findOne(username); + if (user != null) { + user.setAgreeNDA(agreeNDA); + userRepository.save(user); } - return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/src/main/java/org/hbp/mip/controllers/AppsApi.java b/src/main/java/org/hbp/mip/controllers/AppsApi.java index b89ef31b4836ba1e52966ae8a002e341bdb13546..a1f644a93243b362ece5568e3528193c37e68355 100644 --- a/src/main/java/org/hbp/mip/controllers/AppsApi.java +++ b/src/main/java/org/hbp/mip/controllers/AppsApi.java @@ -8,12 +8,7 @@ import io.swagger.annotations.*; import org.apache.log4j.Logger; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.App; -import org.hbp.mip.model.User; -import org.hbp.mip.model.Vote; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.NonUniqueObjectException; -import org.hibernate.Query; -import org.hibernate.Session; +import org.hbp.mip.repositories.AppRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -22,10 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import javax.validation.ConstraintViolationException; -import java.util.LinkedList; -import java.util.List; - import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @RestController @@ -38,29 +29,15 @@ public class AppsApi { @Autowired MIPApplication mipApplication; + @Autowired + AppRepository appRepository; + @ApiOperation(value = "Get apps", response = App.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) - public ResponseEntity<List> getApps( + public ResponseEntity<Iterable> getApps( ) { - List apps = new LinkedList<>(); - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try { - session.beginTransaction(); - Query query = session.createQuery("FROM App"); - apps = query.list(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(apps); + return ResponseEntity.ok(appRepository.findAll()); } @ApiOperation(value = "Post a vote") @@ -71,68 +48,38 @@ public class AppsApi { @ApiParam(value = "value", required = true) @PathVariable("value") Integer value ) { - User user = mipApplication.getUser(); - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try { - session.beginTransaction(); - - Vote vote = (Vote) session.createQuery("" + - "SELECT v FROM Vote v, User u, App a " + - "WHERE u=v.user " + - "AND a=v.app " + - "AND u.username= :username " + - "AND a.id= :app_id") - .setString("username", user.getUsername()) - .setLong("app_id", id) - .uniqueResult(); - App app = (App) session.createQuery("FROM App where id= :id").setLong("id", id).uniqueResult(); - - if (vote != null) { - vote.setValue(value); - - session.update(vote); - session.getTransaction().commit(); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - else - { - vote = new Vote(); - vote.setUser(user); - vote.setValue(value); - vote.setApp(app); - - session.save(vote); - session.getTransaction().commit(); - return new ResponseEntity<>(HttpStatus.CREATED); - } - } - catch (ConstraintViolationException cve) - { - LOGGER.trace(cve); - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - } - return new ResponseEntity<>(HttpStatus.BAD_REQUEST); - } - catch (NonUniqueObjectException nuoe) - { - LOGGER.trace(nuoe); - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - } - return new ResponseEntity<>(HttpStatus.CONFLICT); + /*User user = mipApplication.getUser(); + + Vote vote = (Vote) session.createQuery("" + + "SELECT v FROM Vote v, User u, App a " + + "WHERE u=v.user " + + "AND a=v.app " + + "AND u.username= :username " + + "AND a.id= :app_id") + .setString("username", user.getUsername()) + .setLong("app_id", id) + .uniqueResult(); + App app = (App) session.createQuery("FROM App where id= :id").setLong("id", id).uniqueResult(); + + if (vote != null) { + vote.setValue(value); + + session.update(vote); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - catch (Exception e) + else { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } + vote = new Vote(); + vote.setUser(user); + vote.setValue(value); + vote.setApp(app); + + session.save(vote); + session.getTransaction().commit(); + return new ResponseEntity<>(HttpStatus.CREATED); + }*/ + + return new ResponseEntity<>(HttpStatus.CREATED); + } } diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java index 99fe8334aef8fa27ba2fde647794b472b1cdb196..6d2f1d96efba6d8f60b59565082acb2defc1be3d 100644 --- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java +++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java @@ -11,9 +11,7 @@ import org.apache.log4j.Logger; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.Article; import org.hbp.mip.model.User; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Query; -import org.hibernate.Session; +import org.hbp.mip.repositories.ArticleRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -22,8 +20,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; import java.util.Date; -import java.util.LinkedList; -import java.util.List; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -37,16 +33,19 @@ public class ArticlesApi { @Autowired MIPApplication mipApplication; + @Autowired + ArticleRepository articleRepository; + @ApiOperation(value = "Get articles", response = Article.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) - public ResponseEntity<List> getArticles( + public ResponseEntity<Iterable> getArticles( @ApiParam(value = "Only ask own articles") @RequestParam(value = "own", required = false) Boolean own, @ApiParam(value = "Only ask results matching status", allowableValues = "{values=[draft, published, closed]}") @RequestParam(value = "status", required = false) String status, @ApiParam(value = "Only ask articles from own team") @RequestParam(value = "team", required = false) Boolean team ) { - User user = mipApplication.getUser(); + /*User user = mipApplication.getUser(); String queryString = "SELECT a FROM Article a, User u WHERE a.createdBy=u.username"; if(status != null) @@ -62,28 +61,18 @@ public class ArticlesApi { queryString += " AND (status='published' or u.username= :username)"; } - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); List articles = new LinkedList<>(); - try { - session.beginTransaction(); - Query query = session.createQuery(queryString); - if (status != null) { - query.setString("status", status); - } - query.setString("username", user.getUsername()); - articles = query.list(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } + Query query = session.createQuery(queryString); + if (status != null) { + query.setString("status", status); } + query.setString("username", user.getUsername()); + articles = query.list(); + session.getTransaction().commit(); + return ResponseEntity.ok(articles);*/ - return ResponseEntity.ok(articles); + return ResponseEntity.ok(articleRepository.findAll()); } @@ -103,61 +92,44 @@ public class ArticlesApi { article.setCreatedBy(user); Long count; - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try{ - session.beginTransaction(); + int i = 0; + do{ + i++; + count = articleRepository.countByTitle(article.getTitle()); - int i = 0; - do{ - i++; - count = (Long) session - .createQuery("select count(*) from Article where title= :title") - .setString("title", article.getTitle()) - .uniqueResult(); - - if(count > 0) - { - String title = article.getTitle(); - if(i > 1) - { - title = title.substring(0, title.length()-4); - } - article.setTitle(title + " (" + i + ")"); - } - } while(count > 0); - - String slug = new Slugify().slugify(article.getTitle()); - - i = 0; - do { - i++; - count = (Long) session - .createQuery("select count(*) from Article where slug= :slug") - .setString("slug", slug) - .uniqueResult(); - if(count > 0) + if(count > 0) + { + String title = article.getTitle(); + if(i > 1) { - if(i > 1) - { - slug = slug.substring(0, slug.length()-2); - } - slug += "-"+i; + title = title.substring(0, title.length()-4); } - article.setSlug(slug); - } while(count > 0); + article.setTitle(title + " (" + i + ")"); + } + } while(count > 0); - session.save(article); - session.getTransaction().commit(); + String slug = null; + try { + slug = new Slugify().slugify(article.getTitle()); } catch (IOException e) { - LOGGER.trace(e); - } catch (Exception e) { - if(session.getTransaction() != null) + slug = ""; + LOGGER.trace(e); + } + + i = 0; + do { + i++; + if(articleRepository.exists(slug)) { - session.getTransaction().rollback(); - throw e; + if(i > 1) + { + slug = slug.substring(0, slug.length()-2); + } + slug += "-"+i; } - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } + article.setSlug(slug); + } while(count > 0); + articleRepository.save(article); return new ResponseEntity<>(HttpStatus.CREATED); } @@ -171,32 +143,12 @@ public class ArticlesApi { ) { User user = mipApplication.getUser(); - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Article article = null; - try{ - session.beginTransaction(); - - article = (Article) session - .createQuery("FROM Article WHERE slug= :slug") - .setString("slug", slug) - .uniqueResult(); - - session.getTransaction().commit(); - - if (!"published".equals(article.getStatus()) && !article.getCreatedBy().getUsername().equals(user.getUsername())) - { - return new ResponseEntity<>(HttpStatus.FORBIDDEN); - } - } catch (Exception e) + Article article; + article = articleRepository.findOne(slug); + if (!"published".equals(article.getStatus()) && !article.getCreatedBy().getUsername().equals(user.getUsername())) { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } + return new ResponseEntity<>(HttpStatus.FORBIDDEN); } - return ResponseEntity.ok(article); } @@ -209,12 +161,8 @@ public class ArticlesApi { @RequestBody @ApiParam(value = "Article to update", required = true) @Valid Article article ) { - User user = mipApplication.getUser(); - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + /*User user = mipApplication.getUser(); try{ - session.beginTransaction(); - String author = (String) session .createQuery("select U.username from User U, Article A where A.createdBy = U.username and A.slug = :slug") .setString("slug", slug) @@ -261,7 +209,7 @@ public class ArticlesApi { session.getTransaction().rollback(); throw e; } - } + }*/ return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/src/main/java/org/hbp/mip/controllers/DatasetsApi.java b/src/main/java/org/hbp/mip/controllers/DatasetsApi.java index 4f3b67bfb063cd6504f7df85cf99c8cc4089a1d7..05fc11d6a8b93a573e0c5ffe149de1e2d2a9a1fc 100644 --- a/src/main/java/org/hbp/mip/controllers/DatasetsApi.java +++ b/src/main/java/org/hbp/mip/controllers/DatasetsApi.java @@ -7,8 +7,8 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.Dataset; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; +import org.hbp.mip.repositories.DatasetRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -22,32 +22,16 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/datasets", description = "the datasets API") public class DatasetsApi { + @Autowired + DatasetRepository datasetRepository; + @ApiOperation(value = "Get a dataset", response = Dataset.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(value = "/{code}", method = RequestMethod.GET) public ResponseEntity<Dataset> getADataset( @ApiParam(value = "code", required = true) @PathVariable("code") String code ) { - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Dataset dataset = null; - try{ - session.beginTransaction(); - dataset = (Dataset) session - .createQuery("from Dataset where code= :code") - .setString("code", code) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(dataset); + return ResponseEntity.ok(datasetRepository.findOne(code)); } } diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java index 5adbdaa35ffd233717ea958b54e6a3cdfc7f78a2..508839d0c809dd8e03e5fb614dec5537f0e4268d 100644 --- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java +++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java @@ -5,14 +5,11 @@ import io.swagger.annotations.*; import org.apache.log4j.Logger; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.Experiment; -import org.hbp.mip.model.Model; import org.hbp.mip.model.User; +import org.hbp.mip.repositories.ExperimentRepository; +import org.hbp.mip.repositories.ModelRepository; import org.hbp.mip.utils.HTTPUtil; -import org.hbp.mip.utils.HibernateUtil; import org.hbp.mip.utils.JSONUtil; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; @@ -24,8 +21,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; -import java.util.LinkedList; -import java.util.List; import java.util.UUID; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -63,6 +58,12 @@ public class ExperimentApi { @Autowired MIPApplication mipApplication; + @Autowired + ModelRepository modelRepository; + + @Autowired + ExperimentRepository experimentRepository; + @ApiOperation(value = "Send a request to the workflow to run an experiment", response = Experiment.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @@ -74,33 +75,12 @@ public class ExperimentApi { experiment.setUuid(UUID.randomUUID()); User user = mipApplication.getUser(); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Transaction transaction = session.beginTransaction(); - - try { - - experiment.setAlgorithms(incomingQuery.get("algorithms").toString()); - experiment.setValidations(incomingQuery.get("validations").toString()); - experiment.setName(incomingQuery.get("name").getAsString()); - experiment.setCreatedBy(user); - - Query hibernateQuery = session.createQuery("from Model as model where model.slug = :slug"); - hibernateQuery.setParameter("slug", incomingQuery.get("model").getAsString()); - experiment.setModel((Model)hibernateQuery.uniqueResult()); - - session.save(experiment); - transaction.commit(); - - } catch (Exception e) { - if(transaction != null) - { - transaction.rollback(); - } - LOGGER.trace(e); - LOGGER.warn("Cannot create experiment to run ! This is probably caused by a bad request !"); - // 400 here probably - return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); - } + experiment.setAlgorithms(incomingQuery.get("algorithms").toString()); + experiment.setValidations(incomingQuery.get("validations").toString()); + experiment.setName(incomingQuery.get("name").getAsString()); + experiment.setCreatedBy(user); + experiment.setModel(modelRepository.findOne(incomingQuery.get("model").getAsString())); + experimentRepository.save(experiment); try { if(isExaremeAlgo(experiment)) @@ -130,23 +110,7 @@ public class ExperimentApi { return ResponseEntity.badRequest().body("Invalid Experiment UUID"); } - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - - try { - session.beginTransaction(); - - Query hibernateQuery = session.createQuery("from Experiment as experiment where experiment.uuid = :uuid"); - hibernateQuery.setParameter("uuid", experimentUuid); - experiment = (Experiment) hibernateQuery.uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) { - // 404 here probably - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - } - throw e; - } + experiment = experimentRepository.findOne(experimentUuid); if (experiment == null) { return new ResponseEntity<>("Not found", HttpStatus.NOT_FOUND); @@ -170,31 +134,11 @@ public class ExperimentApi { return ResponseEntity.badRequest().body("Invalid Experiment UUID"); } - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Transaction transaction = null; - try { - transaction = session.beginTransaction(); - - Query hibernateQuery = session.createQuery("from Experiment as experiment where experiment.uuid = :uuid"); - hibernateQuery.setParameter("uuid", experimentUuid); - experiment = (Experiment) hibernateQuery.uniqueResult(); - - if (!experiment.getCreatedBy().getUsername().equals(user.getUsername())) - return new ResponseEntity<>("You're not the owner of this experiment", HttpStatus.BAD_REQUEST); - - experiment.setResultsViewed(true); - session.update(experiment); - - transaction.commit(); - } catch (Exception e) { - // 404 here probably - if(transaction != null) - { - transaction.rollback(); - } - throw e; - } - + experiment = experimentRepository.findOne(experimentUuid);; + if (!experiment.getCreatedBy().getUsername().equals(user.getUsername())) + return new ResponseEntity<>("You're not the owner of this experiment", HttpStatus.BAD_REQUEST); + experiment.setResultsViewed(true); + experimentRepository.save(experiment); return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK); } @@ -265,14 +209,10 @@ public class ExperimentApi { int maxResultCount, String modelSlug ) { - List<Experiment> experiments = new LinkedList<>(); + /*List<Experiment> experiments = new LinkedList<>(); User user = mipApplication.getUser(); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try { - session.beginTransaction(); - Query hibernateQuery; String baseQuery = "from Experiment as e WHERE "; @@ -313,7 +253,9 @@ public class ExperimentApi { } } - return new ResponseEntity<>(gson.toJson(experiments), HttpStatus.OK); + return new ResponseEntity<>(gson.toJson(experiments), HttpStatus.OK);*/ + + return new ResponseEntity<>("", HttpStatus.OK); } private ResponseEntity<String> doMarkExperimentAsShared(String uuid, boolean shared) { @@ -328,30 +270,13 @@ public class ExperimentApi { return ResponseEntity.badRequest().body("Invalid Experiment UUID"); } - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Transaction transaction = null; - try { - transaction = session.beginTransaction(); - - Query hibernateQuery = session.createQuery("from Experiment as experiment where experiment.uuid = :uuid"); - hibernateQuery.setParameter("uuid", experimentUuid); - experiment = (Experiment) hibernateQuery.uniqueResult(); - - if (!experiment.getCreatedBy().getUsername().equals(user.getUsername())) - return new ResponseEntity<>("You're not the owner of this experiment", HttpStatus.BAD_REQUEST); + experiment = experimentRepository.findOne(experimentUuid); - experiment.setShared(shared); - session.update(experiment); + if (!experiment.getCreatedBy().getUsername().equals(user.getUsername())) + return new ResponseEntity<>("You're not the owner of this experiment", HttpStatus.BAD_REQUEST); - transaction.commit(); - } catch (Exception e) { - // 404 here probably - if(transaction != null) - { - transaction.rollback(); - } - throw e; - } + experiment.setShared(shared); + experimentRepository.save(experiment); return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK); } diff --git a/src/main/java/org/hbp/mip/controllers/GroupsApi.java b/src/main/java/org/hbp/mip/controllers/GroupsApi.java index 9f23ad3b43b379ceb8c148900aaac129ac3ae0ad..48574e48cec79d8a23005db34c3125521d7f9c7a 100644 --- a/src/main/java/org/hbp/mip/controllers/GroupsApi.java +++ b/src/main/java/org/hbp/mip/controllers/GroupsApi.java @@ -9,8 +9,8 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.hbp.mip.model.Group; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; +import org.hbp.mip.repositories.GroupRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -23,32 +23,16 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/groups", description = "the groups API") public class GroupsApi { + private static final String ROOT_CODE = "root"; + + @Autowired + GroupRepository groupRepository; + @ApiOperation(value = "Get the root group (containing all subgroups)", response = Group.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) public ResponseEntity<Group> getTheRootGroup() { - - String rootCode = "root"; - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Group group = null; - try{ - session.beginTransaction(); - group = (Group) session - .createQuery("FROM Group WHERE code= :code") - .setString("code", rootCode) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(group); + return ResponseEntity.ok(groupRepository.findOne(ROOT_CODE)); } diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java index 21b102e1858a508f92bff344a4aded93006c10f2..65da841f7adb89f24507d9b63042de0387ce3ef0 100644 --- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java @@ -9,10 +9,10 @@ import io.swagger.annotations.*; import org.apache.log4j.Logger; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.*; +import org.hbp.mip.repositories.DatasetRepository; +import org.hbp.mip.repositories.ModelRepository; +import org.hbp.mip.repositories.QueryRepository; import org.hbp.mip.utils.CSVUtil; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Query; -import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -34,19 +34,28 @@ public class ModelsApi { @Autowired MIPApplication mipApplication; + @Autowired + DatasetRepository datasetRepository; + + @Autowired + ModelRepository modelRepository; + + @Autowired + QueryRepository queryRepository; + private static final String DATA_FILE = "data/values.csv"; @ApiOperation(value = "Get models", response = Model.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) - public ResponseEntity<List<Model>> getModels( + public ResponseEntity<Iterable> getModels( @ApiParam(value = "Max number of results") @RequestParam(value = "limit", required = false) Integer limit, @ApiParam(value = "Only ask own models") @RequestParam(value = "own", required = false) Boolean own, @ApiParam(value = "Only ask models from own team") @RequestParam(value = "team", required = false) Boolean team, @ApiParam(value = "Only ask published models") @RequestParam(value = "valid", required = false) Boolean valid ) { - User user = mipApplication.getUser(); + /*User user = mipApplication.getUser(); String queryString = "SELECT m FROM Model m, User u WHERE m.createdBy=u.username"; if(valid != null && valid) @@ -64,56 +73,27 @@ public class ModelsApi { queryString += " ORDER BY m.createdAt DESC"; - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); List<Model> models = new LinkedList<>(); - try{ - session.beginTransaction(); - Query query = session.createQuery(queryString); - if(valid != null) - { - query.setBoolean("valid", valid); - } - query.setString("username", user.getUsername()); - if(limit != null) - { - query.setMaxResults(limit); // Pagination : Use query.setFirstResult(...) to set begining index - } - models = query.list(); - session.getTransaction().commit(); - } catch (Exception e) + Query query = session.createQuery(queryString); + if(valid != null) { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } + query.setBoolean("valid", valid); + } + query.setString("username", user.getUsername()); + if(limit != null) + { + query.setMaxResults(limit); // Pagination : Use query.setFirstResult(...) to set begining index } + models = query.list(); - for(Model model:models){ - String dsCode = model.getDataset().getCode(); - - session = HibernateUtil.getSessionFactory().getCurrentSession(); - Dataset dataset = null; - try{ - session.beginTransaction(); - dataset = (Dataset) session - .createQuery("from Dataset where code= :code") - .setString("code", dsCode) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - model.setDataset(dataset); + for(Model model:models){ + model.setDataset(datasetRepository.findOne(model.getDataset().getCode())); } - return new ResponseEntity<List<Model>>(HttpStatus.OK).ok(models); + return new ResponseEntity<List<Model>>(HttpStatus.OK).ok(models);*/ + + return new ResponseEntity<>(HttpStatus.OK).ok(modelRepository.findAll()); } @@ -135,65 +115,51 @@ public class ModelsApi { } Long count; - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - try{ - session.beginTransaction(); + int i = 0; + do{ + i++; + count = modelRepository.countByTitle(model.getTitle()); - int i = 0; - do{ - i++; - count = (Long) session - .createQuery("select count(*) from Model where title= :title") - .setString("title", model.getTitle()) - .uniqueResult(); - - if(count > 0) - { - String title = model.getTitle(); - if(i > 1) - { - title = title.substring(0, title.length()-4); - } - model.setTitle(title + " (" + i + ")"); - } - } while(count > 0); - - String slug = new Slugify().slugify(model.getTitle()); - - i = 0; - do { - i++; - count = (Long) session - .createQuery("select count(*) from Model where slug= :slug") - .setString("slug", slug) - .uniqueResult(); - if(count > 0) + if(count > 0) + { + String title = model.getTitle(); + if(i > 1) { - if(i > 1) - { - slug = slug.substring(0, slug.length()-2); - } - slug += "-"+i; + title = title.substring(0, title.length()-4); } - model.setSlug(slug); - } while(count > 0); - - Map<String, String> map = new HashMap<>(model.getConfig().getTitle()); - map.put("text", model.getTitle()); - model.getConfig().setTitle(map); + model.setTitle(title + " (" + i + ")"); + } + } while(count > 0); - session.save(model); - session.getTransaction().commit(); + String slug = null; + try { + slug = new Slugify().slugify(model.getTitle()); } catch (IOException e) { + slug = ""; LOGGER.trace(e); - } catch (Exception e) - { - if(session.getTransaction() != null) + } + + i = 0; + boolean alreadyExists; + do { + i++; + alreadyExists = modelRepository.exists(slug); + if(count > 0) { - session.getTransaction().rollback(); - throw e; + if(i > 1) + { + slug = slug.substring(0, slug.length()-2); + } + slug += "-"+i; } - } + model.setSlug(slug); + } while(alreadyExists); + + Map<String, String> map = new HashMap<>(model.getConfig().getTitle()); + map.put("text", model.getTitle()); + model.getConfig().setTitle(map); + + modelRepository.save(model); return new ResponseEntity<Model>(HttpStatus.CREATED).ok(model); } @@ -207,51 +173,18 @@ public class ModelsApi { User user = mipApplication.getUser(); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Model model = null; - try { - session.beginTransaction(); - model = (Model) session - .createQuery("FROM Model WHERE slug= :slug") - .setString("slug", slug) - .uniqueResult(); - session.getTransaction().commit(); - - if (!model.getValid() && !model.getCreatedBy().getUsername().equals(user.getUsername())) - { - return new ResponseEntity<>(HttpStatus.FORBIDDEN); - } - - } catch (Exception e) + model = modelRepository.findOne(slug); + if (!model.getValid() && !model.getCreatedBy().getUsername().equals(user.getUsername())) { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } + return new ResponseEntity<>(HttpStatus.FORBIDDEN); } - if(model != null) { - session = HibernateUtil.getSessionFactory().getCurrentSession(); org.hbp.mip.model.Query q = null; - try { - session.beginTransaction(); - q = (org.hbp.mip.model.Query) session - .createQuery("FROM Query WHERE id= :id") - .setLong("id", model.getQuery().getId()) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } + q = queryRepository.findOne(model.getQuery().getId()); if(q != null) { @@ -296,7 +229,7 @@ public class ModelsApi { model.setQuery(myQuery); } - Dataset ds = CSVUtil.parseValues(DATA_FILE, model.getQuery()); + Dataset ds = new CSVUtil().parseValues(DATA_FILE, model.getQuery()); model.setDataset(ds); } @@ -313,14 +246,11 @@ public class ModelsApi { @RequestBody @ApiParam(value = "Model to update", required = true) Model model ) { - User user = mipApplication.getUser(); + /*User user = mipApplication.getUser(); model.setTitle(model.getConfig().getTitle().get("text")); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); try{ - session.beginTransaction(); - String author = (String) session .createQuery("select U.username from User U, Model M where M.createdBy = U.username and M.slug = :slug") .setString("slug", slug) @@ -371,7 +301,7 @@ public class ModelsApi { session.getTransaction().rollback(); throw e; } - } + }*/ return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/src/main/java/org/hbp/mip/controllers/RequestsApi.java b/src/main/java/org/hbp/mip/controllers/RequestsApi.java index b60a53b558a33a205bb07ff404a25bba7e5af2d1..e41da4f755a0a1e471686e1dce1ed2973f6959a7 100644 --- a/src/main/java/org/hbp/mip/controllers/RequestsApi.java +++ b/src/main/java/org/hbp/mip/controllers/RequestsApi.java @@ -29,10 +29,7 @@ public class RequestsApi { public ResponseEntity<Dataset> postRequests( @RequestBody @ApiParam(value = "Query to process", required = true) Query query ) { - - Dataset dataset = CSVUtil.parseValues(DATA_FILE, query); - - return ResponseEntity.ok(dataset); + return ResponseEntity.ok(new CSVUtil().parseValues(DATA_FILE, query)); } } diff --git a/src/main/java/org/hbp/mip/controllers/StatsApi.java b/src/main/java/org/hbp/mip/controllers/StatsApi.java index e40a3becf1ee8715ecca6dea068dcc09cb855823..3f6883f28f9d19e7887519105e9a07bd58d5679d 100644 --- a/src/main/java/org/hbp/mip/controllers/StatsApi.java +++ b/src/main/java/org/hbp/mip/controllers/StatsApi.java @@ -9,9 +9,10 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.hbp.mip.model.GeneralStats; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Query; -import org.hibernate.Session; +import org.hbp.mip.repositories.ArticleRepository; +import org.hbp.mip.repositories.UserRepository; +import org.hbp.mip.repositories.VariableRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -24,44 +25,25 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/stats", description = "the stats API") public class StatsApi { + @Autowired + UserRepository userRepository; + + @Autowired + ArticleRepository articleRepository; + + @Autowired + VariableRepository variableRepository; + @ApiOperation(value = "Get general statistics", response = GeneralStats.class) @ApiResponses(value = {@ApiResponse(code = 200, message = "Found"), @ApiResponse(code = 404, message = "Not found") }) @RequestMapping(method = RequestMethod.GET) public ResponseEntity<GeneralStats> getGeneralStatistics() { GeneralStats stats = new GeneralStats(); - Long nbUsers = 0L; - Long nbArticles = 0L; - Long nbVariables = 0L; - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - - try{ - - session.beginTransaction(); - - Query countUsersQuery = session.createQuery("SELECT COUNT(*) FROM User"); - Query countArticlesQuery = session.createQuery("SELECT COUNT(*) FROM Article"); - Query countVariablesQuery = session.createQuery("SELECT COUNT(*) FROM Variable"); - - nbUsers = (Long) countUsersQuery.uniqueResult(); - nbArticles = (Long) countArticlesQuery.uniqueResult(); - nbVariables = (Long) countVariablesQuery.uniqueResult(); - - session.getTransaction().commit(); - - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - stats.setUsers(nbUsers); - stats.setArticles(nbArticles); - stats.setVariables(nbVariables); + stats.setUsers(userRepository.count()); + stats.setArticles(articleRepository.count()); + stats.setVariables(variableRepository.count()); return ResponseEntity.ok(stats); } diff --git a/src/main/java/org/hbp/mip/controllers/UsersApi.java b/src/main/java/org/hbp/mip/controllers/UsersApi.java index bdd2e6745173a7fb9362ae31392ca157007d8231..eabeffca1e196a3201a9068b46c1dc395946f2fb 100644 --- a/src/main/java/org/hbp/mip/controllers/UsersApi.java +++ b/src/main/java/org/hbp/mip/controllers/UsersApi.java @@ -6,8 +6,8 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.User; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; +import org.hbp.mip.repositories.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -21,6 +21,8 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/users", description = "the users API") public class UsersApi { + @Autowired + UserRepository userRepository; @ApiOperation(value = "Get a user", response = User.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Found"), @ApiResponse(code = 404, message = "Not found") }) @@ -28,25 +30,6 @@ public class UsersApi { public ResponseEntity<User> getAUser( @ApiParam(value = "username", required = true) @PathVariable("username") String username ) { - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - User user = null; - try{ - session.beginTransaction(); - user = (User) session - .createQuery("from User where username= :username") - .setString("username", username) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(user); + return ResponseEntity.ok(userRepository.findOne(username)); } } diff --git a/src/main/java/org/hbp/mip/controllers/VariablesApi.java b/src/main/java/org/hbp/mip/controllers/VariablesApi.java index f69f98dedd82c9eb8707b858e86e27a0fd55a2fb..b5f2d72f2f5ea151070fb2598007f22a49b475f6 100644 --- a/src/main/java/org/hbp/mip/controllers/VariablesApi.java +++ b/src/main/java/org/hbp/mip/controllers/VariablesApi.java @@ -8,12 +8,11 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.Value; import org.hbp.mip.model.Variable; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; +import org.hbp.mip.repositories.VariableRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.LinkedList; import java.util.List; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -23,10 +22,13 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/variables", description = "the variables API") public class VariablesApi { + @Autowired + VariableRepository variableRepository; + @ApiOperation(value = "Get variables", response = Variable.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) - public ResponseEntity<List> getVariables( + public ResponseEntity<Iterable> getVariables( @ApiParam(value = "List of groups formatted like : (\"val1\", \"val2\", ...)") @RequestParam(value = "group", required = false) String group, @ApiParam(value = "List of subgroups formatted like : (\"val1\", \"val2\", ...)") @RequestParam(value = "subgroup", required = false) String subgroup, @ApiParam(value = "Boolean value formatted like : (\"0\") or (\"1\") or (\"false\") or (\"true\")") @RequestParam(value = "isVariable", required = false) String isVariable, @@ -34,25 +36,7 @@ public class VariablesApi { @ApiParam(value = "Boolean value formatted like : (\"0\") or (\"1\") or (\"false\") or (\"true\")") @RequestParam(value = "isCovariable", required = false) String isCovariable, @ApiParam(value = "Boolean value formatted like : (\"0\") or (\"1\") or (\"false\") or (\"true\")") @RequestParam(value = "isFilter", required = false) String isFilter ) { - - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - List variables = new LinkedList<>(); - try{ - session.beginTransaction(); - variables = session - .createQuery("from Variable") - .list(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(variables); + return ResponseEntity.ok(variableRepository.findAll()); } @ApiOperation(value = "Get a variable", response = Variable.class) @@ -61,27 +45,7 @@ public class VariablesApi { public ResponseEntity<Variable> getAVariable( @ApiParam(value = "code of the variable ( multiple codes are allowed, separated by \",\" )", required = true) @PathVariable("code") String code ) { - - // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - Variable variable = null; - try{ - session.beginTransaction(); - variable = (Variable) session - .createQuery("from Variable where code= :code") - .setString("code", code) - .uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(variable); + return ResponseEntity.ok(variableRepository.findOne(code)); } @@ -92,27 +56,7 @@ public class VariablesApi { @ApiParam(value = "code", required = true) @PathVariable("code") String code, @ApiParam(value = "Pattern to match") @RequestParam(value = "q", required = false) String q ) { - - // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - List values = new LinkedList<>(); - try{ - session.beginTransaction(); - values = session - .createQuery("select values from Variable where code= :code") - .setString("code", code) - .list(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - - return ResponseEntity.ok(values); + return ResponseEntity.ok(variableRepository.findOne(code).getValues()); } diff --git a/src/main/java/org/hbp/mip/model/Experiment.java b/src/main/java/org/hbp/mip/model/Experiment.java index d87949be04dc8da5d7080d4e20ace726e22ff267..53e4c13c818c14d396dee0118a85f3e5cbcbe9ce 100644 --- a/src/main/java/org/hbp/mip/model/Experiment.java +++ b/src/main/java/org/hbp/mip/model/Experiment.java @@ -6,15 +6,11 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.annotations.Expose; import org.apache.log4j.Logger; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.annotations.*; -import org.hibernate.exception.DataException; +import org.hbp.mip.repositories.ExperimentRepository; +import org.hibernate.annotations.Cascade; +import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.*; -import javax.persistence.Entity; -import javax.persistence.Table; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -35,6 +31,9 @@ public class Experiment { .excludeFieldsWithoutExposeAnnotation() .create(); + @Autowired + ExperimentRepository experimentRepository; + @Id @Column(columnDefinition = "uuid") @org.hibernate.annotations.Type(type="pg-uuid") @@ -147,17 +146,7 @@ public class Experiment { public void finish() { this.setFinished(new Date()); - - try { - Session session = HibernateUtil.getSessionFactory().openSession(); - Transaction transaction = session.beginTransaction(); - session.update(this); - transaction.commit(); - session.close(); - } catch (DataException e) { - LOGGER.trace(e); - throw e; - } + experimentRepository.save(this); } public String getValidations() { diff --git a/src/main/java/org/hbp/mip/repositories/AppRepository.java b/src/main/java/org/hbp/mip/repositories/AppRepository.java index d45a237160fbdb4dfca3be2d98634ad80cce54e3..450837ecbd6aa86b089ce7e7d3c5aef5a05bc673 100644 --- a/src/main/java/org/hbp/mip/repositories/AppRepository.java +++ b/src/main/java/org/hbp/mip/repositories/AppRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.App; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface AppRepository extends Repository<App, String> { +public interface AppRepository extends CrudRepository<App, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/ArticleRepository.java b/src/main/java/org/hbp/mip/repositories/ArticleRepository.java index d64979cc255db43218c00844ff35badef860005d..dfbbd1227898ed3721c6e63387786c392fcca04f 100644 --- a/src/main/java/org/hbp/mip/repositories/ArticleRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ArticleRepository.java @@ -1,10 +1,11 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Article; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface ArticleRepository extends Repository<Article, String> { +public interface ArticleRepository extends CrudRepository<Article, String> { + Long countByTitle(String title); } diff --git a/src/main/java/org/hbp/mip/repositories/ConfigRepository.java b/src/main/java/org/hbp/mip/repositories/ConfigRepository.java index e09f83fd58f1a96e0629f0b8286ec34af8dffd90..bb90c48e03637ab505cca3e4f74b14113ea6ebfd 100644 --- a/src/main/java/org/hbp/mip/repositories/ConfigRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ConfigRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Config; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface ConfigRepository extends Repository<Config, Long> { +public interface ConfigRepository extends CrudRepository<Config, Long> { } diff --git a/src/main/java/org/hbp/mip/repositories/DatasetRepository.java b/src/main/java/org/hbp/mip/repositories/DatasetRepository.java index 09d2933f796146ba4a9779239b1aa156b021ed7f..4d0a62bb76a2d7ff0a8e503b7e930d53b8c89d0b 100644 --- a/src/main/java/org/hbp/mip/repositories/DatasetRepository.java +++ b/src/main/java/org/hbp/mip/repositories/DatasetRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Dataset; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface DatasetRepository extends Repository<Dataset, String> { +public interface DatasetRepository extends CrudRepository<Dataset, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/ExperimentRepository.java b/src/main/java/org/hbp/mip/repositories/ExperimentRepository.java index 14aa1d23a89ea77ac2baff66c671bf8531e4490e..99513acdd08123645adfcd366f8eea8f3ae49dc7 100644 --- a/src/main/java/org/hbp/mip/repositories/ExperimentRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ExperimentRepository.java @@ -1,12 +1,12 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Experiment; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; import java.util.UUID; /** * Created by mirco on 11.07.16. */ -public interface ExperimentRepository extends Repository<Experiment, UUID> { +public interface ExperimentRepository extends CrudRepository<Experiment, UUID> { } diff --git a/src/main/java/org/hbp/mip/repositories/FilterRepository.java b/src/main/java/org/hbp/mip/repositories/FilterRepository.java index 2b5eb3caa261f7cf936684304828064554654919..0c1794243fda1fa6b72542f992d17770d808b9ad 100644 --- a/src/main/java/org/hbp/mip/repositories/FilterRepository.java +++ b/src/main/java/org/hbp/mip/repositories/FilterRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Filter; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface FilterRepository extends Repository<Filter, Long> { +public interface FilterRepository extends CrudRepository<Filter, Long> { } diff --git a/src/main/java/org/hbp/mip/repositories/GroupRepository.java b/src/main/java/org/hbp/mip/repositories/GroupRepository.java index 3b2db555f5e386525197ad0da347ec3be91f8073..57f5eee9b84e8e9a03f2657b45928d71d00aec56 100644 --- a/src/main/java/org/hbp/mip/repositories/GroupRepository.java +++ b/src/main/java/org/hbp/mip/repositories/GroupRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Group; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface GroupRepository extends Repository<Group, String> { +public interface GroupRepository extends CrudRepository<Group, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/ModelRepository.java b/src/main/java/org/hbp/mip/repositories/ModelRepository.java index 7612e86d378b2d4a6def03a629b1c024011e1ad1..91aaa95dc860f96449c3cb2e04b05f3eba2a04e8 100644 --- a/src/main/java/org/hbp/mip/repositories/ModelRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ModelRepository.java @@ -1,10 +1,11 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Model; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface ModelRepository extends Repository<Model, String> { +public interface ModelRepository extends CrudRepository<Model, String> { + Long countByTitle(String Title); } diff --git a/src/main/java/org/hbp/mip/repositories/QueryRepository.java b/src/main/java/org/hbp/mip/repositories/QueryRepository.java index a690a4f4d676a30cd337cbdb5573fa878029cf77..6d07a73161f9809fbde758c589d67eca39474a2e 100644 --- a/src/main/java/org/hbp/mip/repositories/QueryRepository.java +++ b/src/main/java/org/hbp/mip/repositories/QueryRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Query; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface QueryRepository extends Repository<Query, Long> { +public interface QueryRepository extends CrudRepository<Query, Long> { } diff --git a/src/main/java/org/hbp/mip/repositories/TagRepository.java b/src/main/java/org/hbp/mip/repositories/TagRepository.java index e122e500faa528300b93373e41753fabd9eadb36..9b613de352caf443ba6731c498c24e4b9c217213 100644 --- a/src/main/java/org/hbp/mip/repositories/TagRepository.java +++ b/src/main/java/org/hbp/mip/repositories/TagRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Tag; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface TagRepository extends Repository<Tag, String> { +public interface TagRepository extends CrudRepository<Tag, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/UserRepository.java b/src/main/java/org/hbp/mip/repositories/UserRepository.java index 750ceafa594744cbe321afb3aafb0d7638375a79..d5e1f126e50b6d53e86c00b388bd5bf055b00565 100644 --- a/src/main/java/org/hbp/mip/repositories/UserRepository.java +++ b/src/main/java/org/hbp/mip/repositories/UserRepository.java @@ -1,10 +1,11 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.User; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface UserRepository extends Repository<User, String> { +public interface UserRepository extends CrudRepository<User, String> { + } diff --git a/src/main/java/org/hbp/mip/repositories/ValueRepository.java b/src/main/java/org/hbp/mip/repositories/ValueRepository.java index 02e9df7876ddd4448cfcbc88091ac04623d54892..f17fe13490590c7b211928035dec2c78555ee8f2 100644 --- a/src/main/java/org/hbp/mip/repositories/ValueRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ValueRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Value; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface ValueRepository extends Repository<Value, String> { +public interface ValueRepository extends CrudRepository<Value, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/VariableRepository.java b/src/main/java/org/hbp/mip/repositories/VariableRepository.java index 466280b91468314a3d9db6d666acf3148d95ecff..ff6eeb985c4483353b7b864b77049c8c6544c95e 100644 --- a/src/main/java/org/hbp/mip/repositories/VariableRepository.java +++ b/src/main/java/org/hbp/mip/repositories/VariableRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Variable; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface VariableRepository extends Repository<Variable, String> { +public interface VariableRepository extends CrudRepository<Variable, String> { } diff --git a/src/main/java/org/hbp/mip/repositories/VoteRepository.java b/src/main/java/org/hbp/mip/repositories/VoteRepository.java index d652f36a57887c47bbeb6f8762e96aef847522fc..bd858bd3ee961514669849c56be52269f5be6752 100644 --- a/src/main/java/org/hbp/mip/repositories/VoteRepository.java +++ b/src/main/java/org/hbp/mip/repositories/VoteRepository.java @@ -1,10 +1,10 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Vote; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.CrudRepository; /** * Created by mirco on 11.07.16. */ -public interface VoteRepository extends Repository<Vote, Long> { +public interface VoteRepository extends CrudRepository<Vote, Long> { } diff --git a/src/main/java/org/hbp/mip/utils/CSVUtil.java b/src/main/java/org/hbp/mip/utils/CSVUtil.java index b3f6850be795983ec8728624da7dfcf733369dfe..a91d390ce42533abaef1f65f00aab7ca9e57a394 100644 --- a/src/main/java/org/hbp/mip/utils/CSVUtil.java +++ b/src/main/java/org/hbp/mip/utils/CSVUtil.java @@ -4,7 +4,8 @@ import org.apache.log4j.Logger; import org.hbp.mip.model.Dataset; import org.hbp.mip.model.Query; import org.hbp.mip.model.Variable; -import org.hibernate.Session; +import org.hbp.mip.repositories.VariableRepository; +import org.springframework.beans.factory.annotation.Autowired; import java.io.BufferedReader; import java.io.IOException; @@ -24,13 +25,10 @@ public class CSVUtil { private static final String SEPARATOR = ","; - private CSVUtil() - { - /* Hide implicit public constructor */ - throw new IllegalAccessError("CSVUtil class"); - } + @Autowired + VariableRepository variableRepository; - public static Dataset parseValues(String filename, Query query) + public Dataset parseValues(String filename, Query query) { List<String[]> rows = getRows(filename); @@ -161,7 +159,7 @@ public class CSVUtil { return result; } - private static List<String[]> getRows(String filename) { + private List<String[]> getRows(String filename) { List<String[]> rows = new LinkedList<>(); try { InputStream is = CSVUtil.class.getClassLoader().getResourceAsStream(filename); @@ -183,7 +181,7 @@ public class CSVUtil { return rows; } - private static int find(String code, String[] firstRow) { + private int find(String code, String[] firstRow) { for (int i = 0; i < firstRow.length; i++) { if (firstRow[i].equals(code)) return i; @@ -191,7 +189,7 @@ public class CSVUtil { return -1; } - private static String generateDSCode(Query query) { + private String generateDSCode(Query query) { String prefix = "DS"; String queryStr = Integer.toString(query.hashCode()); String memId; @@ -206,24 +204,9 @@ public class CSVUtil { return prefix + memId; } - private static String getTypeFromDB(Variable v) + private String getTypeFromDB(Variable v) { - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - String type = null; - try{ - session.beginTransaction(); - org.hibernate.Query q = session.createQuery("SELECT type FROM Variable where code= :code").setString("code", v.getCode()); - type = (String) q.uniqueResult(); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - } - + String type = variableRepository.findOne(v.getCode()).getType(); if(type == null) { type = "unknown"; diff --git a/src/main/java/org/hbp/mip/utils/HibernateUtil.java b/src/main/java/org/hbp/mip/utils/HibernateUtil.java deleted file mode 100644 index 87cde9618993e4070518b70d2bf6e4d058d54760..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/utils/HibernateUtil.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Created by mirco on 07.12.15. - */ - -package org.hbp.mip.utils; - -import org.apache.log4j.Logger; -import org.hibernate.SessionFactory; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.hibernate.cfg.Configuration; -import org.hibernate.service.ServiceRegistry; - -public class HibernateUtil { - - private static final Logger LOGGER = Logger.getLogger(CSVUtil.class); - - private static ServiceRegistry serviceRegistry; - - private static SessionFactory sessionFactory = buildSessionFactory(); - - private HibernateUtil() { - /* Hide implicit public constructor */ - throw new IllegalAccessError("HibernateUtil class"); - } - - private static SessionFactory buildSessionFactory() { - try { - Configuration configuration = new Configuration(); - configuration.configure(); - serviceRegistry = new StandardServiceRegistryBuilder().applySettings( - configuration.getProperties()).build(); - sessionFactory = configuration.buildSessionFactory(serviceRegistry); - return sessionFactory; - } catch (RuntimeException ex) { - LOGGER.error("Initial SessionFactory creation failed." + ex); - throw new ExceptionInInitializerError(ex); - } - } - - public static SessionFactory getSessionFactory() { - return sessionFactory; - } -}