package com.stacksync.syncservice.test.benchmark.normal; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.stacksync.commons.models.Device; import com.stacksync.commons.models.ItemMetadata; import com.stacksync.commons.models.User; import com.stacksync.commons.models.Workspace; import com.stacksync.syncservice.db.ConnectionPool; import com.stacksync.syncservice.db.ConnectionPoolFactory; import com.stacksync.syncservice.handler.Handler; import com.stacksync.syncservice.handler.SQLSyncHandler; import com.stacksync.syncservice.test.benchmark.Constants; import com.stacksync.syncservice.util.Config; public class TestCommit { public static List<ItemMetadata> getObjectMetadata(JsonArray allFiles) { List<ItemMetadata> metadataList = new ArrayList<ItemMetadata>(); for (int i = 0; i < allFiles.size(); i++) { JsonObject file = allFiles.get(i).getAsJsonObject(); long fileId = file.get("file_id").getAsLong(); long version = file.get("version").getAsLong(); Long parentFileVersion = null; try { parentFileVersion = file.get("parent_file_version").getAsLong(); } catch (Exception ex) { // ex.printStackTrace(); } Long parentFileId = null; try { parentFileId = file.get("parent_file_id").getAsLong(); } catch (Exception ex) { // ex.printStackTrace(); } Date updated = new Date(file.get("updated").getAsLong()); String status = file.get("status").getAsString(); Date lastModified = new Date(file.get("lastModified").getAsLong()); long checksum = file.get("checksum").getAsLong(); long fileSize = file.get("fileSize").getAsLong(); int folderInt = file.get("folder").getAsInt(); boolean folder = folderInt == 0 ? false : true; String name = file.get("name").getAsString(); String mimetype = file.get("mimetype").getAsString(); JsonArray jChunks = file.get("chunks").getAsJsonArray(); // more // optimal List<String> chunks = new ArrayList<String>(); for (int j = 0; j < jChunks.size(); j++) { chunks.add(jChunks.get(j).getAsString()); } ItemMetadata object = new ItemMetadata(fileId, version, Constants.DEVICE_ID, parentFileId, parentFileVersion, status, lastModified, checksum, fileSize, folder, name, mimetype, chunks); metadataList.add(object); } return metadataList; } public static void main(String[] args) throws Exception { Config.loadProperties(); String datasource = Config.getDatasource(); ConnectionPool pool = ConnectionPoolFactory.getConnectionPool(datasource); Handler handler = new SQLSyncHandler(pool); String metadata = CommonFunctions.generateObjects(1, Constants.DEVICE_ID); long startTotal = System.currentTimeMillis(); JsonArray rawObjects = new JsonParser().parse(metadata).getAsJsonArray(); List<ItemMetadata> objects = getObjectMetadata(rawObjects); User user = new User(); user.setId(Constants.USER); Device device = new Device( Constants.DEVICE_ID); Workspace workspace = new Workspace(Constants.WORKSPACE_ID); handler.doCommit(user, workspace, device, objects); long totalTime = System.currentTimeMillis() - startTotal; // System.out.println("Objects -> " + ((GetChangesResponseMessage) // response).getMetadata().size()); System.out.println("Total level time --> " + totalTime + " ms"); } }