diff --git a/.circleci/config.yml b/.circleci/config.yml index ca52a304..4a5b5442 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,22 +58,22 @@ jobs: command: ./jfrog rt config --url $ARTIFACTORY_URL --user $ARTIFACTORY_USER --apikey $ARTIFACTORY_APIKEY --interactive=false - run: name: Send mms-amp - command: ./jfrog rt u 'mms-ent/repo-amp/target/*.amp' libs-snapshot-local/gov/nasa/jpl/mms/mms-amp/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/repo-amp/target/*.amp' libs-snapshot-local/gov/nasa/jpl/mms/mms-amp/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true - run: name: Send mms-share-amp - command: ./jfrog rt u 'mms-ent/share-amp/target/*.amp' libs-snapshot-local/gov/nasa/jpl/mms/mms-share-amp/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/share-amp/target/*.amp' libs-snapshot-local/gov/nasa/jpl/mms/mms-share-amp/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true - run: name: Send mms java client - command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-java-client/mms-java-*.jar' libs-snapshot-local/org/openmbee/mms/mms-java-client/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-java-client/mms-java-*.jar' libs-snapshot-local/org/openmbee/mms/mms-java-client/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true - run: name: Send mms python client - command: ./jfrog rt u 'mms-ent/repo-amp/target/mms_python_*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-python-client/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/repo-amp/target/mms_python_*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-python-client/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true - run: name: Send mms mathematica client - command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-mathematica-*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-mathematica-client/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-mathematica-*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-mathematica-client/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true - run: name: Send mms matlab client - command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-matlab-*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-matlab-client/3.4.3-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true + command: ./jfrog rt u 'mms-ent/repo-amp/target/mms-matlab-*.zip' libs-snapshot-local/gov/nasa/jpl/mms/mms-matlab-client/3.4.4-SNAPSHOT/ --build-name=mms-circleci --build-number=$CIRCLE_BUILD_NUM --flat=true workflows: version: 2 diff --git a/mms-ent/pom.xml b/mms-ent/pom.xml index a3ce5d1d..45b1143f 100755 --- a/mms-ent/pom.xml +++ b/mms-ent/pom.xml @@ -4,7 +4,7 @@ 4.0.0 gov.nasa.jpl.mbee mms-ent - 3.4.3-SNAPSHOT + 3.4.4-SNAPSHOT Alfresco Repository and Share Quickstart with database and an embedded Tomcat runner. This All-in-One project allows to manage all the components involved in Alfresco development (Repo, Share, Solr4, AMPs) in one project diff --git a/mms-ent/repo-amp/pom.xml b/mms-ent/repo-amp/pom.xml index d97305bf..9cb891e5 100755 --- a/mms-ent/repo-amp/pom.xml +++ b/mms-ent/repo-amp/pom.xml @@ -10,7 +10,7 @@ gov.nasa.jpl.mbee mms-ent - 3.4.3-SNAPSHOT + 3.4.4-SNAPSHOT diff --git a/mms-ent/repo-amp/src/main/amp/web/mms/mms.swagger.yaml b/mms-ent/repo-amp/src/main/amp/web/mms/mms.swagger.yaml index 93bc70d7..295aea31 100644 --- a/mms-ent/repo-amp/src/main/amp/web/mms/mms.swagger.yaml +++ b/mms-ent/repo-amp/src/main/amp/web/mms/mms.swagger.yaml @@ -1210,6 +1210,10 @@ paths: required: true description: "ref identifier" type: "string" + - in: "query" + name: "commitId" + description: "" + type: "string" get: tags: - "other" diff --git a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/db/PostgresHelper.java b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/db/PostgresHelper.java index 36361d53..30ca5150 100644 --- a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/db/PostgresHelper.java +++ b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/db/PostgresHelper.java @@ -709,6 +709,30 @@ public List> getAllArtifactsWithLastCommitTimestamp() { return result; } + public List> getAllNodesWithoutLastCommitTimestamp() { + List> result = new ArrayList<>(); + + try { + ResultSet rs = execQuery(String.format( + "SELECT nodes%1$s.id, nodes%1$s.elasticid, nodes%1$s.sysmlid " + + "FROM nodes%1$s " + + "WHERE nodes%1$s.lastcommit IS NULL AND deleted IS NOT TRUE;", workspaceId)); + + while (rs.next()) { + Map node = new HashMap<>(); + node.put(Sjm.ELASTICID, rs.getString(2)); + node.put(Sjm.SYSMLID, rs.getString(3)); + result.add(node); + } + } catch (Exception e) { + logger.warn(String.format("%s", LogUtil.getStackTrace(e))); + } finally { + close(); + } + + return result; + } + public boolean isDeleted(String sysmlid) { try (PreparedStatement query = getConn() .prepareStatement("SELECT id FROM \"nodes" + workspaceId + "\" WHERE sysmlid = ? AND deleted = true")) { diff --git a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/util/EmsNodeUtil.java b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/util/EmsNodeUtil.java index ccd3c8e7..726a0f72 100644 --- a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/util/EmsNodeUtil.java +++ b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/util/EmsNodeUtil.java @@ -1806,6 +1806,27 @@ public JsonObject getModelAtCommit(String commitId) { return result; } + public List getModelIdsAtCommit(String commitId) { + List result = new ArrayList<>(); + Map commit = pgh.getCommit(commitId); + if (commit != null) { + // project and holding bin nodes + for (Map n : pgh.getAllNodesWithoutLastCommitTimestamp()) { + result.add((String) n.get(Sjm.SYSMLID)); + } + for (Map n : pgh.getAllNodesWithLastCommitTimestamp()) { + if ((boolean) n.get("deleted")) { + if (!commitId.equals(n.get("lastCommit")) && ( n.get(Sjm.TIMESTAMP) != null && ((Timestamp) n.get(Sjm.TIMESTAMP)).after((Timestamp) commit.get(Sjm.TIMESTAMP)))) { + result.add((String) n.get(Sjm.SYSMLID)); + } + continue; + } + result.add((String) n.get(Sjm.SYSMLID)); + } + } + return result; + } + public void processElementForModelAtCommit(Map element, Map deletedElementIds, Map commit, String commitId, List refsCommitsIds, JsonArray elements, List elasticIds) { diff --git a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/webscripts/ModelIdsGet.java b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/webscripts/ModelIdsGet.java index b620634d..96d2e385 100644 --- a/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/webscripts/ModelIdsGet.java +++ b/mms-ent/repo-amp/src/main/java/gov/nasa/jpl/view_repo/webscripts/ModelIdsGet.java @@ -4,12 +4,9 @@ import com.google.gson.JsonObject; import gov.nasa.jpl.mbee.util.Timer; import gov.nasa.jpl.mbee.util.Utils; -import gov.nasa.jpl.view_repo.db.GraphInterface; -import gov.nasa.jpl.view_repo.db.Node; import gov.nasa.jpl.view_repo.util.EmsNodeUtil; import gov.nasa.jpl.view_repo.util.Sjm; -import java.io.IOException; -import java.sql.SQLException; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -80,9 +77,17 @@ protected Map handleElementGet(WebScriptRequest req, Status stat private JsonObject getAllElementIds(WebScriptRequest req) { String refId = getRefId(req); String projectId = getProjectId(req); + String commit = req.getParameter(Sjm.COMMITID.replace("_", "")); EmsNodeUtil emsNodeUtil = new EmsNodeUtil(projectId, refId); - String commit = emsNodeUtil.getHeadCommit(); - List sysmlIds = emsNodeUtil.getModel(true); + + List sysmlIds; + if (commit == null || commit.isEmpty()) { + commit = emsNodeUtil.getHeadCommit(); + sysmlIds = emsNodeUtil.getModel(true); + } else { + sysmlIds = emsNodeUtil.getModelIdsAtCommit(commit); + } + JsonArray array = new JsonArray(); JsonObject result = new JsonObject(); for (String s: sysmlIds) { diff --git a/mms-ent/repo/pom.xml b/mms-ent/repo/pom.xml index d9da8efc..78ebc208 100755 --- a/mms-ent/repo/pom.xml +++ b/mms-ent/repo/pom.xml @@ -18,7 +18,7 @@ gov.nasa.jpl.mbee mms-ent - 3.4.3-SNAPSHOT + 3.4.4-SNAPSHOT diff --git a/mms-ent/runner/pom.xml b/mms-ent/runner/pom.xml index c632af70..d0d3730a 100755 --- a/mms-ent/runner/pom.xml +++ b/mms-ent/runner/pom.xml @@ -9,7 +9,7 @@ gov.nasa.jpl.mbee mms-ent - 3.4.3-SNAPSHOT + 3.4.4-SNAPSHOT diff --git a/mms-ent/share-amp/pom.xml b/mms-ent/share-amp/pom.xml index 6604f260..834c9053 100644 --- a/mms-ent/share-amp/pom.xml +++ b/mms-ent/share-amp/pom.xml @@ -9,7 +9,7 @@ gov.nasa.jpl.mbee mms-ent - 3.4.3-SNAPSHOT + 3.4.4-SNAPSHOT