Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d28a5fc
Add --break-system-packages to pip commands
bbimber Jul 3, 2024
5902217
Merge pull request #284 from BimberLab/fb_pip
bbimber Jul 3, 2024
a7dad3f
Migrate .view.xml files from deprecated <permissions> elements to <pe…
labkey-adam Jul 13, 2024
cc126b4
Merge pull request #287 from LabKey/develop
bbimber Jul 14, 2024
dea2dbb
Fix merge conflict
bbimber Jul 14, 2024
7fb981e
Merge pull request #299 from LabKey/fb_merge_24.3_to_develop
bbimber Jul 16, 2024
a9ea0c3
Merge develop to develop
Jul 16, 2024
f7faebe
Merge pull request #300 from LabKey/fb_merge_develop_to_develop
bbimber Jul 17, 2024
6103bab
jbrowse: Package Updates
labkey-nicka Jul 23, 2024
4d0ca25
jbrowse: add tsconfig.json
labkey-nicka Jul 23, 2024
1166117
jbrowse: factor out usage of react-hot-loader
labkey-nicka Jul 23, 2024
b99470b
jbrowse: @ts-ignore -- FIXME: Build is resolving the wrong @types/react
labkey-nicka Jul 23, 2024
a3d99d0
jbrowse: remove @labkey/components dependency
labkey-nicka Jul 23, 2024
3a3d948
jbrowse: update jest configuration
labkey-nicka Jul 23, 2024
22790a3
Add "paths" to tsconfig.json (seems to not have any effect)
labkey-nicka Jul 23, 2024
2304d9b
jbrowse: switch to @yao-pkg/pkg
labkey-nicka Jul 23, 2024
5e0089a
Declare "overrides" for "react" and "react-dom"
labkey-nicka Jul 23, 2024
f219c29
Remove "paths" from tsconfig.json
labkey-nicka Jul 23, 2024
48f4e53
Remove @ts-ignore statements
labkey-nicka Jul 23, 2024
63c2098
Remove empty <permissions> element (#302)
labkey-adam Jul 24, 2024
dd70253
Merge discvr-24.7 to develop
bbimber Jul 24, 2024
f0e36bc
Bump @labkey packages
labkey-nicka Jul 24, 2024
c0fb39d
Package Updates (#301)
labkey-nicka Jul 24, 2024
c39c6b8
Merge branch 'develop' into fb_merge_24.7_to_develop
bbimber Jul 24, 2024
7ce24ff
Merge pull request #303 from LabKey/fb_merge_24.7_to_develop
bbimber Jul 24, 2024
1ba56ca
Fix merge conflicts
bbimber Aug 1, 2024
2dddb2f
Update jest.setup.ts
bbimber Aug 1, 2024
6506d7b
Update JBrowse to react 18
bbimber Aug 1, 2024
c77732d
Backport view fixes (#305)
labkey-adam Aug 2, 2024
4477913
Merge pull request #304 from LabKey/fb_merge_24.7_to_develop
bbimber Aug 5, 2024
bfc7d9b
Merge 24.7 to 24.8
labkey-teamcity Aug 6, 2024
1a03f83
Merge 24.8 to develop
labkey-teamcity Aug 7, 2024
fad7e62
Merge discvr-24.7 to develop
bbimber Aug 28, 2024
a3283a9
Merge pull request #310 from LabKey/fb_merge_24.7_to_develop
bbimber Aug 28, 2024
4352276
Remove useEmbeddedTomcat property and other support for standalone bu…
labkey-adam Sep 6, 2024
54a78c8
AssayDataHandler and AssayUpload conversion File->FileObject
labkey-matthewb Sep 18, 2024
6cdaf47
Fix merge conflicts
bbimber Sep 24, 2024
bcc1703
Update jbrowse
bbimber Sep 24, 2024
20eae1c
Merge pull request #315 from LabKey/fb_merge_24.7_to_develop
bbimber Sep 25, 2024
d4bb26a
Merge remote-tracking branch 'origin/develop' into fb_filesystemlike
labkey-matthewb Sep 26, 2024
1aab1df
FileSystemLike and FileLike interfaces
labkey-matthewb Sep 26, 2024
4a0979b
Merge discvr-24.7 to develop
bbimber Sep 26, 2024
a490a6c
Merge pull request #316 from LabKey/fb_merge_24.7_to_develop
bbimber Sep 26, 2024
d84a997
Merge remote-tracking branch 'origin/develop' into fb_filesystemlike
labkey-matthewb Oct 1, 2024
256a6a0
Use WritablePropertyMap (#317)
labkey-adam Oct 3, 2024
e6ecde0
safely handle relative path
labkey-matthewb Oct 4, 2024
0c739bf
Fix merge conflict
bbimber Oct 9, 2024
e96139e
Fix issue with package-lock.json
bbimber Oct 9, 2024
9c9106f
Merge remote-tracking branch 'origin/develop' into fb_filesystemlike
labkey-matthewb Oct 9, 2024
89c1616
Merge pull request #319 from LabKey/fb_merge_24.7_to_develop
bbimber Oct 9, 2024
20a9f93
Merge pull request #318 from LabKey/fb_filesystemlike
labkey-matthewb Oct 10, 2024
1140dec
Merge discvr-24.7 to develop
bbimber Oct 29, 2024
58967e0
Merge pull request #321 from LabKey/fb_merge_24.7_to_develop
bbimber Oct 30, 2024
03a28dc
Update for method rename
labkey-susanh Nov 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions OpenLdapSync/resources/views/ldapSettings.view.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<view xmlns="http://labkey.org/data/xml/view" title="LDAP Sync Settings">
<permissions>
<permission name="admin"/>
</permissions>
<permissionClasses>
<permissionClass name="org.labkey.api.security.permissions.AdminPermission"/>
</permissionClasses>
<dependencies>
<dependency path="clientapi"/>
<dependency path="clientapi_core"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.directory.api.ldap.model.exception.LdapException;
import org.labkey.api.data.PropertyManager;
import org.labkey.api.data.PropertyManager.WritablePropertyMap;
import org.labkey.api.security.User;
import org.labkey.api.security.UserManager;
import org.labkey.api.security.ValidEmail;
Expand Down Expand Up @@ -112,13 +113,13 @@ public static void setLdapSettings(Map<String, String> props, Map<String, String
}
}

PropertyManager.PropertyMap writableProps = PropertyManager.getWritableProperties(PROPERTY_CATEGORY, true);
WritablePropertyMap writableProps = PropertyManager.getWritableProperties(PROPERTY_CATEGORY, true);
writableProps.clear();

writableProps.putAll(props);
writableProps.save();

PropertyManager.PropertyMap encryptedWritableProps = PropertyManager.getEncryptedStore().getWritableProperties(PROPERTY_CATEGORY_ENCRYPTED, true);
WritablePropertyMap encryptedWritableProps = PropertyManager.getEncryptedStore().getWritableProperties(PROPERTY_CATEGORY_ENCRYPTED, true);
encryptedWritableProps.clear();

encryptedWritableProps.putAll(encryptedProps);
Expand Down
16 changes: 6 additions & 10 deletions SequenceAnalysis/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ dependencies {
if (project.findProject(BuildUtils.getTestProjectPath(project.gradle)) != null && project.hasProperty("teamcity"))
{
project.evaluationDependsOn(BuildUtils.getTestProjectPath(project.gradle))
def configDir = new File(ServerDeployExtension.getServerDeployDirectory(project), "config")
def configDir = new File(ServerDeployExtension.getServerDeployDirectoryPath(project), "config")
def testProject = project.findProject(BuildUtils.getTestProjectPath(project.gradle))
def createPipelineConfigTask = project.tasks.register("createPipelineConfig", Copy) {
Copy task ->
Expand All @@ -185,19 +185,15 @@ if (project.findProject(BuildUtils.getTestProjectPath(project.gradle)) != null &
})
task.destinationDir = configDir

if (BuildUtils.useEmbeddedTomcat(project)) {
rootProject.allprojects {
task.mustRunAfter tasks.withType(DoThenSetup)
}
rootProject.allprojects {
task.mustRunAfter tasks.withType(DoThenSetup)
}
}
testProject.tasks.named("startTomcat").configure {
dependsOn(createPipelineConfigTask)
if (BuildUtils.useEmbeddedTomcat(project)) {
it.doFirst {
new File(new File(BuildUtils.getEmbeddedConfigPath(project)), "application.properties")
<< "\ncontext.pipelineConfig=${configDir.getAbsolutePath().replace("\\", "\\\\")}"
}
it.doFirst {
new File(new File(BuildUtils.getEmbeddedConfigPath(project)), "application.properties")
<< "\ncontext.pipelineConfig=${configDir.getAbsolutePath().replace("\\", "\\\\")}"
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions SequenceAnalysis/pipeline_code/sequence_tools_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -818,9 +818,9 @@ then
install ./cutadapt-1.8.1/bin/_preamble.py ${LKTOOLS_DIR}/_preamble.py
cp -R ./cutadapt-1.8.1/cutadapt ${LKTOOLS_DIR}/cutadapt
else
$PIP_EXE install --user cutadapt==4.2
$PIP_EXE install --user --break-system-packages cutadapt==4.2
$PIP_EXE show cutadapt
$PIP_EXE install --user pyinstaller
$PIP_EXE install --user --break-system-packages pyinstaller
$PIP_EXE show pyinstaller
~/.local/bin/pyinstaller --onefile --clean ~/.local/bin/cutadapt
cp ./dist/cutadapt ${LKTOOLS_DIR}/cutadapt
Expand Down
6 changes: 3 additions & 3 deletions SequenceAnalysis/resources/views/importFasta.view.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<view xmlns="http://labkey.org/data/xml/view" title="Import Sequence Data">
<permissions>
<permission name="insert"/>
</permissions>
<permissionClasses>
<permissionClass name="org.labkey.api.security.permissions.InsertPermission"/>
</permissionClasses>
<dependencies>
<dependency path="laboratory.context"/>
<dependency path="SequenceAnalysis/sequenceAnalysis"/>
Expand Down
6 changes: 3 additions & 3 deletions SequenceAnalysis/resources/views/importTracks.view.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<view xmlns="http://labkey.org/data/xml/view" title="Import Tracks">
<permissions>
<permission name="insert"/>
</permissions>
<permissionClasses>
<permissionClass name="org.labkey.api.security.permissions.InsertPermission"/>
</permissionClasses>
<dependencies>
<dependency path="laboratory.context"/>
<dependency path="SequenceAnalysis/sequenceAnalysis"/>
Expand Down
6 changes: 3 additions & 3 deletions SequenceAnalysis/resources/views/sequenceDefaults.view.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<view xmlns="http://labkey.org/data/xml/view" title="DISCVR-Seq Settings">
<permissions>
<permission name="admin"/>
</permissions>
<permissionClasses>
<permissionClass name="org.labkey.api.security.permissions.AdminPermission"/>
</permissionClasses>
<dependencies>
<dependency path="laboratory.context"/>
<dependency path="SequenceAnalysis/sequenceAnalysis"/>
Expand Down
6 changes: 3 additions & 3 deletions SequenceAnalysis/resources/views/siteAdmin.view.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<view xmlns="http://labkey.org/data/xml/view" title="DISCVR-Seq Site Settings">
<permissions>
<permission name="admin"/>
</permissions>
<permissionClasses>
<permissionClass name="org.labkey.api.security.permissions.AdminPermission"/>
</permissionClasses>
<dependencies>
<dependency path="laboratory.context"/>
<dependency path="SequenceAnalysis/sequenceAnalysis"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import htsjdk.tribble.TribbleException;
import htsjdk.variant.vcf.VCFFileReader;
import htsjdk.variant.vcf.VCFHeader;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
Expand Down Expand Up @@ -59,6 +61,7 @@
import org.labkey.api.data.ConvertHelper;
import org.labkey.api.data.DataRegionSelection;
import org.labkey.api.data.PropertyManager;
import org.labkey.api.data.PropertyManager.WritablePropertyMap;
import org.labkey.api.data.Results;
import org.labkey.api.data.ResultsImpl;
import org.labkey.api.data.SQLFragment;
Expand Down Expand Up @@ -167,14 +170,13 @@
import org.labkey.sequenceanalysis.util.ChainFileValidator;
import org.labkey.sequenceanalysis.util.FastqUtils;
import org.labkey.sequenceanalysis.util.SequenceUtil;
import org.labkey.vfs.FileLike;
import org.springframework.beans.PropertyValues;
import org.springframework.validation.BindException;
import org.springframework.validation.Errors;
import org.springframework.web.bind.ServletRequestParameterPropertyValues;
import org.springframework.web.servlet.ModelAndView;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
Expand Down Expand Up @@ -2015,30 +2017,30 @@ else if (!d.getFile().exists())
}
else if (o.has("relPath") || o.has("fileName"))
{
File f;
FileLike f;
if (o.opt("relPath") == null)
{
if (path != null)
{
f = pr.resolvePath(path);
f = new File(f, o.getString("fileName"));
f = pr.resolvePathToFileLike(path);
f = f.resolveFile(Path.parse(o.getString("fileName")));
}
else
{
f = pr.resolvePath(o.getString("fileName"));
f = pr.resolvePathToFileLike(o.getString("fileName"));
}
}
else
{
f = pr.resolvePath(o.getString("relPath"));
f = pr.resolvePathToFileLike(o.getString("relPath"));
}

if (f == null || !f.exists())
{
throw new PipelineValidationException("Unknown file: " + o.getString("relPath") + " / " + o.getString("fileName"));
}

ret.add(f);
ret.add(f.toNioPathForRead().toFile());
}
else if (o.opt("filePath") != null)
{
Expand Down Expand Up @@ -2554,8 +2556,8 @@ protected File getTargetFile(String filename) throws IOException

try
{
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
}
catch (ExperimentException e)
{
Expand Down Expand Up @@ -2687,8 +2689,8 @@ protected File getTargetFile(String filename) throws IOException

try
{
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
}
catch (ExperimentException e)
{
Expand Down Expand Up @@ -2852,8 +2854,8 @@ protected File getTargetFile(String filename) throws IOException

try
{
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
}
catch (ExperimentException e)
{
Expand Down Expand Up @@ -3642,7 +3644,7 @@ else if (fastaFileType.isType(data.getFile()))
}
}

File dict = new File(data.getFile().getParentFile(), FileUtil.getBaseName(data.getFile()) + ".dict");
File dict = FileUtil.appendName(data.getFile().getParentFile(), FileUtil.getBaseName(data.getFile()) + ".dict");
if (dict.exists())
{
files.add(dict);
Expand Down Expand Up @@ -4141,10 +4143,10 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
return null;
}

File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer(), "sequenceOutputs");
if (!targetDirectory.exists())
{
targetDirectory.mkdirs();
targetDirectory.mkdir();
}

if (form.getRecords() != null)
Expand All @@ -4154,7 +4156,7 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
Map<File, Map<String, Object>> toCreate = new HashMap<>();
for (JSONObject o : JsonUtil.toJSONObjectList(arr))
{
File file = new File(dirData, o.getString("fileName"));
File file = FileUtil.appendName(dirData, o.getString("fileName"));
if (!file.exists())
{
errors.reject(ERROR_MSG, "Unknown file: " + file.getPath());
Expand Down Expand Up @@ -4195,8 +4197,8 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr

for (File file : toCreate.keySet())
{
File target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
FileUtils.moveFile(file, target);
FileLike target = AssayFileWriter.findUniqueFileName(file.getName(), targetDirectory);
FileUtils.moveFile(file, target.toNioPathForWrite().toFile());

ExpData data = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
data.setName(file.getName());
Expand Down Expand Up @@ -4235,14 +4237,14 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
}

_log.info("moving associated file: " + idx.getPath() + ", to: " + idxTargetName);
File idxTarget = new File(targetDirectory, idxTargetName);
FileLike idxTarget = targetDirectory.resolveChild(idxTargetName);
if (idxTarget.exists())
{
_log.error("target already exists, skipping: " + idxTargetName);
}
else
{
FileUtils.moveFile(idx, idxTarget);
FileUtils.moveFile(idx, idxTarget.toNioPathForWrite().toFile());

ExpData idxData = ExperimentService.get().createData(getContainer(), new DataType("Sequence Output"));
idxData.setName(idxTarget.getName());
Expand Down Expand Up @@ -4971,7 +4973,7 @@ public static class SetSequenceImportDefaultsAction extends MutatingApiAction<Se
public ApiResponse execute(SetSequenceImportDefaultsForm form, BindException errors) throws Exception
{
Container target = getContainer().isWorkbook() ? getContainer().getParent() : getContainer();
PropertyManager.PropertyMap configMap = PropertyManager.getWritableProperties(target, CONFIG_PROPERTY_DOMAIN_IMPORT, true);
WritablePropertyMap configMap = PropertyManager.getWritableProperties(target, CONFIG_PROPERTY_DOMAIN_IMPORT, true);
configMap.put(INPUT_FILE_TREATMENT, form.getInputFileTreatment());

configMap.save();
Expand Down
Loading
Loading