diff --git a/.github/workflows/pull-request-approved.yml b/.github/workflows/pull-request-approved.yml new file mode 100644 index 000000000..a0d481fae --- /dev/null +++ b/.github/workflows/pull-request-approved.yml @@ -0,0 +1,34 @@ +name: Pull request approve workflow +run-name: 'Pull request approve workflow ${{ github.event.pull_request.head.ref }} -> ${{ github.event.pull_request.base.ref }} by @${{ github.actor }}' + +on: + pull_request_review: + types: [ submitted ] + +jobs: + calculate-xetabase-branch: + name: Calculate Xetabase branch + runs-on: ubuntu-22.04 + outputs: + xetabase_branch: ${{ steps.get_xetabase_branch.outputs.xetabase_branch }} + steps: + - name: Clone java-common-libs + uses: actions/checkout@v4 + with: + fetch-depth: '10' + - id: get_xetabase_branch + name: "Get current branch for Xetabase from target branch" + run: | + chmod +x ./.github/workflows/scripts/get-xetabase-branch.sh + xetabase_branch=$(./.github/workflows/scripts/get-xetabase-branch.sh ${{ github.event.pull_request.base.ref }}) + echo "__Xetabase ref:__ \"${xetabase_branch}\"" | tee -a ${GITHUB_STEP_SUMMARY} + echo "xetabase_branch=${xetabase_branch}" >> $GITHUB_OUTPUT + + test: + name: "Run all tests before merging" + needs: calculate-xetabase-branch + uses: opencb/java-common-libs/.github/workflows/test-xetabase-workflow.yml@TASK-6399 + with: + branch: ${{ needs.calculate-xetabase-branch.outputs.xetabase_branch }} + task: ${{ github.event.pull_request.head.ref }} + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/scripts/get-xetabase-branch.sh b/.github/workflows/scripts/get-xetabase-branch.sh new file mode 100644 index 000000000..e971f990c --- /dev/null +++ b/.github/workflows/scripts/get-xetabase-branch.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Function to calculate the corresponding branch of Xetabase project +get_xetabase_branch() { + # Input parameter (branch name) + input_branch="$1" + + # If the branch begins with 'TASK' and exists in the opencga-enterprise repository, I return it + if [[ $input_branch == TASK* ]]; then + if [ "$(git ls-remote https://github.com/zetta-genomics/opencga-enterprise.git "$input_branch" )" ] ; then + echo "$GIT_BRANCH"; + exit 0; + fi + fi + + # Check if the branch name is "develop" in that case return the same branch name + if [[ "$input_branch" == "develop" ]]; then + echo "develop" + return 0 + fi + + # Check if the branch name starts with "release-" and follows the patterns "release-a.b.x" or "release-a.b.c.x" + if [[ "$input_branch" =~ ^release-([0-9]+)\.([0-9]+)\.x$ ]] || [[ "$input_branch" =~ ^release-([0-9]+)\.([0-9]+)\.([0-9]+)\.x$ ]]; then + # Extract the MAJOR part of the branch name + MAJOR=${BASH_REMATCH[1]} + # Calculate the XETABASE_MAJOR by subtracting 3 from MAJOR + XETABASE_MAJOR=$((MAJOR - 1)) + # Check if the XETABASE_MAJOR is negative + if (( XETABASE_MAJOR < 0 )); then + echo "Error: 'MAJOR' digit after subtraction results in a negative number." + return 1 + fi + # Construct and echo the new branch name + echo "release-$XETABASE_MAJOR.${input_branch#release-$MAJOR.}" + return 0 + fi + + # If the branch name does not match any of the expected patterns + echo "Error: The branch name is not correct." + return 1 +} + +# Check if the script receives exactly one argument +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +# Call the function with the input branch name +get_xetabase_branch "$1" diff --git a/biodata-formats/pom.xml b/biodata-formats/pom.xml index ce1f093f6..238588ca6 100644 --- a/biodata-formats/pom.xml +++ b/biodata-formats/pom.xml @@ -88,11 +88,11 @@ org.apache.avro avro - + junit junit diff --git a/biodata-formats/src/test/java/org/opencb/biodata/formats/variant/annotation/io/VepFormatWriterTest.java b/biodata-formats/src/test/java/org/opencb/biodata/formats/variant/annotation/io/VepFormatWriterTest.java index 7194668c9..9092cbec4 100644 --- a/biodata-formats/src/test/java/org/opencb/biodata/formats/variant/annotation/io/VepFormatWriterTest.java +++ b/biodata-formats/src/test/java/org/opencb/biodata/formats/variant/annotation/io/VepFormatWriterTest.java @@ -19,7 +19,7 @@ package org.opencb.biodata.formats.variant.annotation.io; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.VariantAvro; diff --git a/biodata-models/pom.xml b/biodata-models/pom.xml index b10170a14..f9cf2628a 100644 --- a/biodata-models/pom.xml +++ b/biodata-models/pom.xml @@ -74,10 +74,10 @@ com.fasterxml.jackson.core jackson-databind - + junit junit diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/alignment/RegionCoverage.java b/biodata-models/src/main/java/org/opencb/biodata/models/alignment/RegionCoverage.java index e7f367e0e..01b4b532a 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/alignment/RegionCoverage.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/alignment/RegionCoverage.java @@ -1,7 +1,7 @@ package org.opencb.biodata.models.alignment; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.ObjectWriter; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import org.opencb.biodata.models.core.Region; import java.io.IOException; diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java index 67de7d60b..50f4e2d6a 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/ClinicalVariant.java @@ -115,19 +115,7 @@ public ClinicalVariant(VariantAvro avro, List evidences @Override public String toString() { - final StringBuilder sb = new StringBuilder("ClinicalVariant{"); - sb.append("evidences=").append(evidences); - sb.append(", comments=").append(comments); - sb.append(", filters=").append(filters); - sb.append(", recommendation='").append(recommendation).append('\''); - sb.append(", references=").append(references); - sb.append(", discussion=").append(discussion); - sb.append(", confidence=").append(confidence); - sb.append(", tags=").append(tags); - sb.append(", status=").append(status); - sb.append(", attributes=").append(attributes); - sb.append('}'); - return sb.toString(); + return super.toString(); } public List getEvidences() { diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/Interpretation.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/Interpretation.java index 99fbff5d8..36f9c7e02 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/Interpretation.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/interpretation/Interpretation.java @@ -28,29 +28,29 @@ public class Interpretation { - private String id; - private String uuid; - private String description; - private String clinicalAnalysisId; + protected String id; + protected String uuid; + protected String name; + protected String description; + protected String clinicalAnalysisId; /** * Interpretation algorithm tool used to generate this interpretation. */ - private ClinicalAnalyst analyst; - private InterpretationMethod method; + protected ClinicalAnalyst analyst; + protected InterpretationMethod method; - private List primaryFindings; - private List secondaryFindings; + protected List primaryFindings; + protected List secondaryFindings; - private List comments; + protected List comments; - private InterpretationStats stats; + protected InterpretationStats stats; - private boolean locked; - private Status status; - private String creationDate; - private String modificationDate; - private int version; + protected boolean locked; + protected String creationDate; + protected String modificationDate; + protected int version; /** * Users can add custom information in this field. @@ -61,12 +61,23 @@ public class Interpretation { public Interpretation() { } + @Deprecated public Interpretation(String id, String uuid, String description, String clinicalAnalysisId, ClinicalAnalyst analyst, InterpretationMethod method, List primaryFindings, List secondaryFindings, List comments, InterpretationStats stats, Status status, String creationDate, String modificationDate, boolean locked, int version, Map attributes) { + this(id, uuid, id, description, clinicalAnalysisId, analyst, method, primaryFindings, secondaryFindings, + comments, stats, locked, creationDate, modificationDate, version, attributes); + } + + public Interpretation(String id, String uuid, String name, String description, String clinicalAnalysisId, + ClinicalAnalyst analyst, InterpretationMethod method, List primaryFindings, + List secondaryFindings, List comments, + InterpretationStats stats, boolean locked, String creationDate, String modificationDate, + int version, Map attributes) { this.id = id; this.uuid = uuid; + this.name = name; this.description = description; this.clinicalAnalysisId = clinicalAnalysisId; this.analyst = analyst; @@ -75,10 +86,9 @@ public Interpretation(String id, String uuid, String description, String clinica this.secondaryFindings = secondaryFindings; this.comments = comments; this.stats = stats; - this.status = status; + this.locked = locked; this.creationDate = creationDate; this.modificationDate = modificationDate; - this.locked = locked; this.version = version; this.attributes = attributes; } @@ -88,6 +98,7 @@ public String toString() { final StringBuilder sb = new StringBuilder("Interpretation{"); sb.append("id='").append(id).append('\''); sb.append(", uuid='").append(uuid).append('\''); + sb.append(", name='").append(name).append('\''); sb.append(", description='").append(description).append('\''); sb.append(", clinicalAnalysisId='").append(clinicalAnalysisId).append('\''); sb.append(", analyst=").append(analyst); @@ -96,7 +107,6 @@ public String toString() { sb.append(", secondaryFindings=").append(secondaryFindings); sb.append(", comments=").append(comments); sb.append(", stats=").append(stats); - sb.append(", status=").append(status); sb.append(", creationDate='").append(creationDate).append('\''); sb.append(", modificationDate='").append(modificationDate).append('\''); sb.append(", locked='").append(locked).append('\''); @@ -124,6 +134,15 @@ public Interpretation setUuid(String uuid) { return this; } + public String getName() { + return name; + } + + public Interpretation setName(String name) { + this.name = name; + return this; + } + public String getDescription() { return description; } @@ -196,15 +215,6 @@ public Interpretation setStats(InterpretationStats stats) { return this; } - public Status getStatus() { - return status; - } - - public Interpretation setStatus(Status status) { - this.status = status; - return this; - } - public String getCreationDate() { return creationDate; } diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/pedigree/Pedigree.java b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/pedigree/Pedigree.java index af190bd80..18fe4c71b 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/clinical/pedigree/Pedigree.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/clinical/pedigree/Pedigree.java @@ -19,7 +19,7 @@ package org.opencb.biodata.models.clinical.pedigree; -import org.codehaus.jackson.map.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectMapper; import org.opencb.biodata.models.clinical.Disorder; import org.opencb.biodata.models.clinical.Phenotype; diff --git a/biodata-models/src/main/java/org/opencb/biodata/models/common/Status.java b/biodata-models/src/main/java/org/opencb/biodata/models/common/Status.java index 7563ce9e1..65ffd8895 100644 --- a/biodata-models/src/main/java/org/opencb/biodata/models/common/Status.java +++ b/biodata-models/src/main/java/org/opencb/biodata/models/common/Status.java @@ -19,17 +19,22 @@ public class Status { protected String id; - protected String name; protected String description; protected String date; public Status() { - this("", "", "", ""); + this("", "", ""); } + public Status(String id, String description, String date) { + this.id = id; + this.description = description; + this.date = date; + } + + @Deprecated public Status(String id, String name, String description, String date) { this.id = id; - this.name = name; this.description = description; this.date = date; } @@ -38,7 +43,6 @@ public Status(String id, String name, String description, String date) { public String toString() { final StringBuilder sb = new StringBuilder("Status{"); sb.append("id='").append(id).append('\''); - sb.append(", name='").append(name).append('\''); sb.append(", description='").append(description).append('\''); sb.append(", date='").append(date).append('\''); sb.append('}'); @@ -53,7 +57,6 @@ public boolean equals(Object o) { Status status = (Status) o; if (!id.equals(status.id)) return false; - if (name != null ? !name.equals(status.name) : status.name != null) return false; if (description != null ? !description.equals(status.description) : status.description != null) return false; return date != null ? date.equals(status.date) : status.date == null; } @@ -61,7 +64,6 @@ public boolean equals(Object o) { @Override public int hashCode() { int result = id.hashCode(); - result = 31 * result + (name != null ? name.hashCode() : 0); result = 31 * result + (description != null ? description.hashCode() : 0); result = 31 * result + (date != null ? date.hashCode() : 0); return result; @@ -76,12 +78,13 @@ public Status setId(String id) { return this; } + @Deprecated public String getName() { - return name; + return id; } + @Deprecated public Status setName(String name) { - this.name = name; return this; } diff --git a/biodata-tools/pom.xml b/biodata-tools/pom.xml index fb5dbfa42..c7c32361d 100644 --- a/biodata-tools/pom.xml +++ b/biodata-tools/pom.xml @@ -96,10 +96,10 @@ org.apache.commons commons-collections4 - + com.google.guava guava diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/AlignmentGlobalStats.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/AlignmentGlobalStats.java index a668fd296..128b5ed00 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/AlignmentGlobalStats.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/AlignmentGlobalStats.java @@ -19,8 +19,8 @@ package org.opencb.biodata.tools.alignment.stats; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.ObjectWriter; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import java.io.IOException; import java.util.HashMap; diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceKmers.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceKmers.java index 350f43043..b6eb0b190 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceKmers.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceKmers.java @@ -19,8 +19,8 @@ package org.opencb.biodata.tools.alignment.stats; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.ObjectWriter; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import java.io.IOException; import java.util.HashMap; diff --git a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceStats.java b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceStats.java index b11296015..2cfae49b7 100644 --- a/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceStats.java +++ b/biodata-tools/src/main/java/org/opencb/biodata/tools/alignment/stats/SequenceStats.java @@ -19,8 +19,8 @@ package org.opencb.biodata.tools.alignment.stats; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.ObjectWriter; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import java.io.IOException; import java.util.HashMap; diff --git a/biodata-tools/src/test/java/org/opencb/biodata/tools/variant/VcfManagerTest.java b/biodata-tools/src/test/java/org/opencb/biodata/tools/variant/VcfManagerTest.java index 1a4ac4c3f..f75a2ae9b 100644 --- a/biodata-tools/src/test/java/org/opencb/biodata/tools/variant/VcfManagerTest.java +++ b/biodata-tools/src/test/java/org/opencb/biodata/tools/variant/VcfManagerTest.java @@ -1,6 +1,7 @@ package org.opencb.biodata.tools.variant; import htsjdk.variant.variantcontext.VariantContext; +import org.junit.BeforeClass; import org.junit.Test; import org.opencb.biodata.models.core.Region; import org.opencb.biodata.models.variant.Variant; @@ -13,6 +14,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import java.util.Locale; import static org.junit.Assert.assertEquals; @@ -22,6 +24,11 @@ public class VcfManagerTest { String filename = "/ibs.vcf"; + @BeforeClass + public static void setUp(){ + Locale.setDefault(new Locale("en", "EN")); + } + private Path index(VcfManager vcfManager) throws IOException { return vcfManager.createIndex(); } diff --git a/pom.xml b/pom.xml index 9848510fe..1a6c71bc3 100644 --- a/pom.xml +++ b/pom.xml @@ -38,19 +38,20 @@ - 4.12.0 - 2.11.4 + 5.2.1-SNAPSHOT + + 2.14.3 4.4 1.7.7 3.11.4 1.28.1 2.23.0 - 1.7.32 + 1.7.36 3.0.2 - 3.12.0 - 1.9.13 + 3.14.0 + 19.0 - 2.4 + 2.12.0 5.0.0 0.6.0a5 4.3.1 @@ -235,11 +236,6 @@ commons-lang3 ${commons-lang.version} - - org.codehaus.jackson - jackson-mapper-asl - ${jackson-mapper.version} - org.apache.avro avro @@ -414,6 +410,9 @@ * + + * +