Skip to content
Snippets Groups Projects
Commit 274bf430 authored by Thomas's avatar Thomas
Browse files

Fixed file upload, added tags loader

parent 87a5fe3a
Branches
No related tags found
No related merge requests found
......@@ -21,7 +21,7 @@ public interface IModelManager {
void removeLayer(long id, User user) throws Exception;
void addFile(MultipartFile file, long id, User user) throws Exception;
void addLayerFile(MultipartFile file, long id, User user) throws Exception;
void addLayerFile(MultipartFile file, long modelId, String name, User user) throws Exception;
void addTag(TagMessage message);
......
......@@ -33,43 +33,27 @@ public class ModelManager implements IModelManager {
model.setShortDescription(message.getShortDescription());
model.setLongDescription(message.getLongDescription());
System.err.println("[MODEL MANAGER] oui 2");
System.err.println("[MODEL MANAGER] add model 2");
if (message.getTags() != null) {
System.err.println("[MODEL MANAGER] oui 2.1");
System.err.println("[MODEL MANAGER] add model new tag 2.1");
Set<Tag> tags = new HashSet<Tag>();
for (String tagName : message.getTags()) {
Tag tag = dao.getTagByName(tagName);
tags.add(tag);
}
System.err.println("[MODEL MANAGER] oui 2.2");
System.err.println("[MODEL MANAGER] add model new tag 2.2");
model.setTags(tags);
}
System.err.println("[MODEL MANAGER] oui 3");
if (message.getCustomLayers() != null) {
System.err.println("[MODEL MANAGER] oui 3.1");
Set<CustomLayer> layers = new HashSet<CustomLayer>();
for (String layerName : message.getCustomLayers()) {
System.err.println("[MODEL MANAGER] new layer 1"+layerName);
CustomLayer layer = new CustomLayer();
layer.setName(layerName);
System.err.println("[MODEL MANAGER] new layer 2"+layerName);
layers.add(layer);
}
System.err.println("[MODEL MANAGER] oui 3.2");
model.setCustomLayers(layers);
}
System.err.println("[MODEL MANAGER] oui 4");
System.err.println("[MODEL MANAGER] add model 3");
model.setVotes(0);
model.setAdded(new Date());
model.setLastModified(new Date());
model.setAuthor(user);
System.err.println("[MODEL MANAGER] oui 5");
System.err.println("[MODEL MANAGER] add model 4");
try {
dao.addModel(model);
......@@ -77,19 +61,24 @@ public class ModelManager implements IModelManager {
System.err.println("[MODEL MANAGER] Add model error "+e.getMessage());
}
System.err.println("[MODEL MANAGER] oui 6");
System.err.println("[MODEL MANAGER] add model 5");
return model.getId();
}
@Override
public void addFile(MultipartFile file, long id, User user) throws Exception {
System.err.println("[MODEL MANAGER] add model file 1");
Model model = dao.findModel(id);
if (model == null)
throw new Exception("Unknown model");
System.err.println("[MODEL MANAGER] add model file 2");
model.setFile(file.getBytes());
System.err.println("[MODEL MANAGER] add model file 3");
model.setFileType(file.getContentType());
System.err.println("[MODEL MANAGER] add model file 4");
dao.updateModel(model);
System.err.println("[MODEL MANAGER] add model file 5");
}
@Override
......@@ -170,15 +159,21 @@ public class ModelManager implements IModelManager {
}
@Override
public void addLayerFile(MultipartFile file, long id, User user) throws Exception {
CustomLayer layer = dao.findLayer(id);
if (layer == null)
throw new Exception("Unknown layer");
if (!isLayerAuthor(layer, user))
public void addLayerFile(MultipartFile file, long modelId, String name, User user) throws Exception {
Model model = dao.findModel(modelId);
if (model == null)
throw new Exception("Unknown model");
if (!isModelAuthor(model, user))
throw new Exception("Not the author");
CustomLayer layer = new CustomLayer();
layer.setName(name);
layer.setFile(file.getBytes());
layer.setModel(model);
dao.updateLayer(layer);
model.getCustomLayers().add(layer);
dao.updateModel(model);
}
private boolean isLayerAuthor(CustomLayer layer, User user) {
......
......@@ -73,16 +73,16 @@ public class Model implements Serializable{
private String fileType;
@Basic
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
private User author;
@Basic
@ManyToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinTable(name = "model_tag")
private Set<Tag> tags;
@Basic
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinTable(name = "model_customLayers")
private Set<CustomLayer> customLayers;
......
......@@ -27,7 +27,7 @@ public class Tag implements Serializable{
private Long id;
@Basic
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
private TagCategory category;
@Basic
......@@ -35,7 +35,7 @@ public class Tag implements Serializable{
private String name;
@Basic
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToMany(fetch = FetchType.LAZY)
private Set<Model> models;
public Tag() {
......
......@@ -58,7 +58,7 @@ public class User implements Serializable{
private Role role;
@Basic
@OneToMany(mappedBy = "author", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@OneToMany(mappedBy = "author", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
private Set<Model> models;
......
package mozen.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
......@@ -53,29 +57,34 @@ public class DatabaseFiller {
Model m1 = new Model();
m1.setAuthor(u1);
m1.setName("model 1");
m1.setShortDescription("short description 1");
m1.setLongDescription("# README \n model 1");
m1.setName("Model Testo");
m1.setShortDescription("Short description for model testo");
m1.setLongDescription("# README \n model testo");
m1.setVotes(0);
m1.setAdded(new Date());
m1.setLastModified(new Date());
Set<Tag> m1tags = new HashSet<Tag>();
Tag t1 = new Tag();
/*Set<Tag> m1tags = new HashSet<Tag>();
TagCategory ca1 = new TagCategory();
ca1.setName("Layer");
Tag t1 = new Tag();
t1.setCategory(ca1);
t1.setName("Conv2D");
Tag t2 = new Tag();
TagCategory ca2 = new TagCategory();
ca2.setName("Architecture");
Tag t2 = new Tag();
t2.setCategory(ca2);
t2.setName("VGG19");
m1tags.add(t1);
m1tags.add(t2);
m1.setTags(m1tags);
*/
m1.setTags(tagLoader("tags.txt"));
Set<CustomLayer> m1layers = new HashSet<CustomLayer>();
CustomLayer l1 = new CustomLayer();
......@@ -94,4 +103,37 @@ public class DatabaseFiller {
daoModel.addModel(m1);
}
Set<Tag> tagLoader(String filePath) {
Set<Tag> tags = new HashSet<Tag>();
File file = new File(filePath);
FileReader fr;
try {
fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println("[DB FILLER] adding category "+line);
TagCategory category = new TagCategory();
category.setName(line);
line = br.readLine();
while (!line.equals("#")) {
System.out.println("[DB FILLER] adding tag "+line+" to "+category.getName());
Tag tag = new Tag();
tag.setCategory(category);
tag.setName(line);
tags.add(tag);
line = br.readLine();
}
}
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
return tags;
}
}
\ No newline at end of file
......@@ -127,7 +127,7 @@ public class ModelController {
}
@PostMapping("/upload")
public ResponseEntity<ResponseMessage> uploadModelFile(@RequestParam(value = "id", required = true) Long id, @RequestParam("file") MultipartFile file) {
public ResponseEntity<ResponseMessage> uploadModelFile(@RequestParam("file") MultipartFile file, @RequestParam(value = "id", required = true) Long id) {
ResponseMessage response = new ResponseMessage(false, "");
User user = getUser();
if(user == null) {
......@@ -137,6 +137,7 @@ public class ModelController {
}
try {
System.err.println("[MODEL CONTROLLER] model file upload n:"+file.getName());
modelManager.addFile(file, id, user);
} catch (Exception e) {
response.setError(true);
......@@ -164,6 +165,30 @@ public class ModelController {
return ResponseEntity.ok(response);
}
@PostMapping("/uploadLayer")
public ResponseEntity<ResponseMessage> uploadLayerFile(
@RequestParam("file") MultipartFile file,
@RequestParam(value = "id", required = true) Long id,
@RequestParam(value = "name", required = true) String name) {
ResponseMessage response = new ResponseMessage(false, "");
User user = getUser();
if(user == null) {
response.setError(true);
response.setMessage("User unknown");
return ResponseEntity.ok(response);
}
try {
System.err.println("[MODEL CONTROLLER] layer file upload f:"+file.getName()+" n:"+name);
modelManager.addLayerFile(file, id, name, user);
} catch (Exception e) {
response.setError(true);
response.setMessage(e.getMessage());
}
return ResponseEntity.ok(response);
}
private User getUser() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
......
tags.txt 0 → 100644
Task
Classification
#
Dataset
Cifar10
Cifar100
SVHN
MNIST
#
Architecture
VGG19
Lenet
Fully connected 500
Resnet 20
Resnet 50
Tensor Train base
#
Layers
Dense
Conv2D
Batchnorm
MaxPooling
#
Other
(4096x4096)
(2048x2048)
seed:1
seed:2
seed:3
(deprecated)
#
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment