diff --git a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreContainerListener.java b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreContainerListener.java index c22b939f..651de984 100644 --- a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreContainerListener.java +++ b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreContainerListener.java @@ -16,52 +16,17 @@ package org.labkey.skylinetoolsstore; -import org.jetbrains.annotations.NotNull; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager.ContainerListener; -import org.labkey.api.data.RuntimeSQLException; import org.labkey.api.security.User; -import java.sql.SQLException; - -import java.beans.PropertyChangeEvent; -import java.util.Collection; -import java.util.Collections; - public class SkylineToolsStoreContainerListener implements ContainerListener { - @Override - public void containerCreated(Container c, User user) - { - } @Override public void containerDeleted(Container c, User user) { - try - { - SkylineToolsStoreManager.get().deleteAllData(c); - } - catch (SQLException e) - { - throw new RuntimeSQLException(e); - } - } - - @Override - public void propertyChange(PropertyChangeEvent evt) - { - } - - @Override - public void containerMoved(Container c, Container oldParent, User user) - { + SkylineToolsStoreManager.get().deleteAllData(c); } - @NotNull - @Override - public Collection canMove(Container c, Container newParent, User user) - { - return Collections.emptyList(); - } } \ No newline at end of file diff --git a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreController.java b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreController.java index 08b90d80..3cfb3984 100644 --- a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreController.java +++ b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreController.java @@ -24,6 +24,7 @@ import org.apache.commons.lang3.math.NumberUtils; import org.json.JSONArray; import org.json.JSONObject; +import org.jetbrains.annotations.NotNull; import org.labkey.api.action.FormHandlerAction; import org.labkey.api.action.NavTrailAction; import org.labkey.api.action.PermissionCheckable; @@ -468,7 +469,7 @@ public InsertAction() } @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final String sender = httpServletRequest.getParameter("sender"); final String updateTargetString = StringUtils.trimToNull(httpServletRequest.getParameter("updatetarget")); @@ -703,7 +704,7 @@ public InsertSupplementAction() } @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final String suppTargetString = httpServletRequest.getParameter("supptarget"); int suppTarget = NumberUtils.toInt(suppTargetString, -1); @@ -765,7 +766,7 @@ public DeleteSupplementAction() } @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final int suppTarget = Integer.parseInt(httpServletRequest.getParameter("supptarget")); @@ -896,7 +897,7 @@ public class DeleteLatestAction extends AbstractController implements Permission private final Class REQ_PERMS = DeletePermission.class; @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(@NotNull HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { int id; try { @@ -961,7 +962,7 @@ public class DownloadToolAction extends AbstractController implements Permission public static final String DOWNLOADED_COOKIE_PREFIX = "downloadtool"; @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final int id = NumberUtils.toInt(httpServletRequest.getParameter("id"), -1); final String toolName = httpServletRequest.getParameter("name"); @@ -1239,7 +1240,7 @@ public SetOwnersAction() } @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final String sender = httpServletRequest.getParameter("sender"); final String updateTargetString = httpServletRequest.getParameter("updatetarget"); @@ -1312,7 +1313,7 @@ public class UpdatePropertyAction extends AbstractController implements Permissi private final Class REQ_PERMS = InsertPermission.class; @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception + public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws Exception { final int id = Integer.parseInt(httpServletRequest.getParameter("id")); @@ -1420,7 +1421,7 @@ public void checkPermissions() throws UnauthorizedException public class GetToolsApiAction extends AbstractController implements PermissionCheckable { @Override - public ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException + public ModelAndView handleRequestInternal(@NotNull HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws IOException { StringBuilder sb = new StringBuilder(); diff --git a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreManager.java b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreManager.java index 8fe46ad9..3a2fb907 100644 --- a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreManager.java +++ b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreManager.java @@ -26,8 +26,6 @@ import org.labkey.api.security.User; import org.labkey.skylinetoolsstore.model.SkylineTool; -import java.sql.SQLException; - public class SkylineToolsStoreManager { private static final SkylineToolsStoreManager _instance = new SkylineToolsStoreManager(); @@ -42,7 +40,7 @@ public static SkylineToolsStoreManager get() return _instance; } - public void deleteAllData(Container c) throws SQLException + public void deleteAllData(Container c) { // delete all tools when the container is deleted Filter containerFilter = SimpleFilter.createContainerFilter(c); @@ -124,18 +122,18 @@ public SkylineTool getToolByNameAndVersion(String name, String version) return (tools != null && tools.length > 0) ? tools[0] : null; } - public void deleteTool(int rowId) throws SQLException + public void deleteTool(int rowId) { Table.delete(SkylineToolsStoreSchema.getInstance().getTableInfoSkylineTool(), rowId); } - public SkylineTool insertTool(Container c, User user, SkylineTool tool) throws SQLException + public SkylineTool insertTool(Container c, User user, SkylineTool tool) { tool.setContainer(c.getId()); return Table.insert(user, SkylineToolsStoreSchema.getInstance().getTableInfoSkylineTool(), tool); } - public SkylineTool updateTool(Container c, User user, SkylineTool tool) throws SQLException + public SkylineTool updateTool(Container c, User user, SkylineTool tool) { if (tool.getContainerId() == null) tool.setContainerId(c.getId()); @@ -153,7 +151,7 @@ public SkylineTool updateTool(Container c, User user, SkylineTool tool) throws S tool, tool.getRowId()); } - public SkylineTool recordToolDownload(SkylineTool tool) throws SQLException + public SkylineTool recordToolDownload(SkylineTool tool) { tool.setDownloads(tool.getDownloads() + 1); return Table.update(null, SkylineToolsStoreSchema.getInstance().getTableInfoSkylineTool(), diff --git a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreModule.java b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreModule.java index 5e18f513..be6bc5b0 100644 --- a/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreModule.java +++ b/SkylineToolsStore/src/org/labkey/skylinetoolsstore/SkylineToolsStoreModule.java @@ -26,7 +26,6 @@ import org.labkey.api.view.BaseWebPartFactory; import org.labkey.api.view.Portal; import org.labkey.api.view.ViewContext; -import org.labkey.api.view.WebPartConfigurationException; import org.labkey.api.view.WebPartFactory; import org.labkey.api.view.WebPartView; import org.labkey.skylinetoolsstore.model.SkylineTool; @@ -74,7 +73,7 @@ protected Collection createWebPartFactories() } @Override - public WebPartView getWebPartView(@NotNull ViewContext portalCtx, Portal.@NotNull WebPart webPart) throws WebPartConfigurationException + public WebPartView getWebPartView(@NotNull ViewContext portalCtx, Portal.@NotNull WebPart webPart) { return new SkylineToolsStoreWebPart(); } diff --git a/lincs/src/org/labkey/lincs/CustomGctBuilder.java b/lincs/src/org/labkey/lincs/CustomGctBuilder.java index f6fa8f52..e95c2d16 100644 --- a/lincs/src/org/labkey/lincs/CustomGctBuilder.java +++ b/lincs/src/org/labkey/lincs/CustomGctBuilder.java @@ -44,7 +44,7 @@ public Gct build(List files, List sele for(Path file: files) { - _log.info("LINCS custom GCT: reading file: " + file); + _log.info("LINCS custom GCT: reading file: {}", file); Gct gct; try { @@ -87,10 +87,10 @@ private void updateMultiValueProbeAnnotations(Gct gct, Gct customGct) { // All replicates in a single GCT file should have the same value for the "det_plate" replicate annotation. // TODO: This is not true for GCP plate 16 file. - String detPlateAnnotationVal = gct.getReplicates().get(0).getAnnotationValue(LincsAnnotation.PLATE_ANNOTATION); + String detPlateAnnotationVal = gct.getReplicates().getFirst().getAnnotationValue(LincsAnnotation.PLATE_ANNOTATION); // All replicates in a single GCT file should have the same value for the "provenance_code" replicate annotation - String expType = gct.getExperimentType(gct.getReplicates().get(0).getAnnotationValue(LincsAnnotation.PROVENANCE_CODE)); + String expType = gct.getExperimentType(gct.getReplicates().getFirst().getAnnotationValue(LincsAnnotation.PROVENANCE_CODE)); // Append experiment type to plate annotation since we can have same plate (e.g. plate 18) analyzed by both DIA and PRM. String expTypeAndPlate = expType + "_" + detPlateAnnotationVal; diff --git a/lincs/src/org/labkey/lincs/DocImportListener.java b/lincs/src/org/labkey/lincs/DocImportListener.java index 94721938..6706c825 100644 --- a/lincs/src/org/labkey/lincs/DocImportListener.java +++ b/lincs/src/org/labkey/lincs/DocImportListener.java @@ -70,7 +70,7 @@ public void beforeRunDelete(ExpProtocol protocol, ExpRun run, User user) } catch (IOException e) { - _log.warn("LINCS: Error listing files in folder " + FileUtil.getAbsolutePath(gctDir), e); + _log.warn("LINCS: Error listing files in folder {}", FileUtil.getAbsolutePath(gctDir), e); return; } @@ -81,7 +81,7 @@ public void beforeRunDelete(ExpProtocol protocol, ExpRun run, User user) } catch (IOException e) { - _log.warn("LINCS: Error deleting file " + FileUtil.getAbsolutePath(path), e); + _log.warn("LINCS: Error deleting file {}", FileUtil.getAbsolutePath(path), e); } }); } @@ -115,7 +115,7 @@ public void onDocumentImport(Container container, User user, ITargetedMSRun skyl PipeRoot root = PipelineService.get().findPipelineRoot(container); if (root == null || !root.isValid()) { - _log.error("LINCS: No valid pipeline root found for " + container.getPath()); + _log.error("LINCS: No valid pipeline root found for {}", container.getPath()); return; } @@ -129,7 +129,7 @@ public void onDocumentImport(Container container, User user, ITargetedMSRun skyl } catch (PipelineValidationException e) { - _log.error("Error adding LINCS pipeline job to queue. Message: " + e.getMessage(), e); + _log.error("Error adding LINCS pipeline job to queue. Message: {}", e.getMessage(), e); if(pspJob != null) { LincsManager.get().deleteLincsPspJob(pspJob); @@ -138,7 +138,7 @@ public void onDocumentImport(Container container, User user, ITargetedMSRun skyl } long jobId = PipelineService.get().getJobId(user, container, job.getJobGUID()); - _log.info("LINCS: Queued job Id " + jobId +" for creating GCT files for " + skylineRun.getFileName() + ". Container: " + container.getPath()); + _log.info("LINCS: Queued job Id {} for creating GCT files for {}. Container: {}", jobId, skylineRun.getFileName(), container.getPath()); pspJob.setPipelineJobId(jobId); LincsManager.get().updatePipelineJobId(pspJob); diff --git a/lincs/src/org/labkey/lincs/Gct.java b/lincs/src/org/labkey/lincs/Gct.java index ed04700a..998211bd 100644 --- a/lincs/src/org/labkey/lincs/Gct.java +++ b/lincs/src/org/labkey/lincs/Gct.java @@ -126,12 +126,7 @@ public void addMultiValueProbeAnnotation(String annotationName, ProbeExpTypePlat { _multiValueProbeAnnotations = new HashMap<>(); } - GctTable probePlateValues = _multiValueProbeAnnotations.get(annotationName); - if(probePlateValues == null) - { - probePlateValues = new GctTable<>(); - _multiValueProbeAnnotations.put(annotationName, probePlateValues); - } + GctTable probePlateValues = _multiValueProbeAnnotations.computeIfAbsent(annotationName, _ -> new GctTable<>()); probePlateValues.addValue(key, value); } diff --git a/lincs/src/org/labkey/lincs/LincsContainerListener.java b/lincs/src/org/labkey/lincs/LincsContainerListener.java deleted file mode 100644 index c06cd9b6..00000000 --- a/lincs/src/org/labkey/lincs/LincsContainerListener.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.labkey.lincs; - -import org.jetbrains.annotations.NotNull; -import org.labkey.api.data.Container; -import org.labkey.api.data.ContainerManager.ContainerListener; -import org.labkey.api.security.User; -import java.util.Collections; -import java.util.Collection; - -import java.beans.PropertyChangeEvent; - -public class LincsContainerListener implements ContainerListener -{ - @Override - public void containerCreated(Container c, User user) - { - } - - @Override - public void containerDeleted(Container c, User user) - { - } - - @Override - public void propertyChange(PropertyChangeEvent evt) - { - } - - @Override - public void containerMoved(Container c, Container oldParent, User user) - { - } - - @NotNull @Override - public Collection canMove(Container c, Container newParent, User user) - { - return Collections.emptyList(); - } -} \ No newline at end of file diff --git a/lincs/src/org/labkey/lincs/LincsController.java b/lincs/src/org/labkey/lincs/LincsController.java index e35d4007..c77e6337 100644 --- a/lincs/src/org/labkey/lincs/LincsController.java +++ b/lincs/src/org/labkey/lincs/LincsController.java @@ -93,8 +93,6 @@ import org.springframework.validation.Errors; import org.springframework.web.servlet.ModelAndView; -import java.io.File; -import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; diff --git a/lincs/src/org/labkey/lincs/LincsManager.java b/lincs/src/org/labkey/lincs/LincsManager.java index 62926ccc..87050b77 100644 --- a/lincs/src/org/labkey/lincs/LincsManager.java +++ b/lincs/src/org/labkey/lincs/LincsManager.java @@ -83,7 +83,7 @@ public List getReplicateAnnotations(User user, Container contai else { // Otherwise, read from the lincs_replicate_annotations.txt file in the module's resources directory - _log.info("Could not find table " + listName + " in schema 'lists'. Trying to read from file."); + _log.info("Could not find table {} in schema 'lists'. Trying to read from file.", listName); return readFromFile("lincs_replicate_annotations.txt"); } } @@ -100,7 +100,7 @@ public List getPeptideAnnotations(User user, Container containe else { // Otherwise, read from the lincs_peptide_annotations.txt file in the module's resources directory - _log.info("Could not find table " + listName + " in schema 'lists'. Trying to read from file."); + _log.info("Could not find table {} in schema 'lists'. Trying to read from file.", listName); return readFromFile("lincs_peptide_annotations.txt"); } } @@ -120,10 +120,10 @@ private List readFromFile(String filename) String[] headers = line.split("\\t"); for(int i = 0; i < headers.length; i++) { - if(headers[i].toLowerCase().equals("name")) {nameCol = i;} - else if(headers[i].toLowerCase().equals("displayname")) {displayNameCol = i;} - else if(headers[i].toLowerCase().equals("advanced")) {advancedCol = i;} - else if(headers[i].toLowerCase().equals("ignored")) {ignoredCol = i;} + if(headers[i].equalsIgnoreCase("name")) {nameCol = i;} + else if(headers[i].equalsIgnoreCase("displayname")) {displayNameCol = i;} + else if(headers[i].equalsIgnoreCase("advanced")) {advancedCol = i;} + else if(headers[i].equalsIgnoreCase("ignored")) {ignoredCol = i;} } List annotations = new ArrayList<>(); @@ -142,7 +142,7 @@ private List readFromFile(String filename) } catch (IOException e) { - _log.error("Could not read file " + txt.getPath(), e); + _log.error("Could not read file {}", txt.getPath(), e); return Collections.emptyList(); } } diff --git a/lincs/src/org/labkey/lincs/LincsModule.java b/lincs/src/org/labkey/lincs/LincsModule.java index c204647c..cb5bf142 100644 --- a/lincs/src/org/labkey/lincs/LincsModule.java +++ b/lincs/src/org/labkey/lincs/LincsModule.java @@ -19,8 +19,6 @@ import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.labkey.api.data.Container; -import org.labkey.api.data.ContainerManager; import org.labkey.api.exp.api.ExperimentService; import org.labkey.api.module.AdminLinkManager; import org.labkey.api.module.ModuleContext; @@ -116,9 +114,6 @@ public Set getSchemaNames() @Override protected void startupAfterSpringConfig(ModuleContext moduleContext) { - // add a container listener so we'll know when our container is deleted: - ContainerManager.addContainerListener(new LincsContainerListener()); - DocImportListener docImportListener = new DocImportListener(); ExperimentService service = ExperimentService.get(); service.addExperimentListener(docImportListener); @@ -135,13 +130,6 @@ protected void startupAfterSpringConfig(ModuleContext moduleContext) }); } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } - public enum LincsAssay { P100("GCT File P100", "p100_comprehensive_report.skyr"), @@ -180,17 +168,12 @@ public enum LincsLevel public static String getExt(LincsLevel level) { - switch(level) + return switch (level) { - case Two: - return ".gct"; - case Three: - return "_LVL3.gct"; - case Four: - return "_LVL4.gct"; - case Config: - return ".cfg"; - } - return StringUtils.EMPTY; + case Two -> ".gct"; + case Three -> "_LVL3.gct"; + case Four -> "_LVL4.gct"; + case Config -> ".cfg"; + }; } } \ No newline at end of file diff --git a/lincs/src/org/labkey/lincs/LincsSchema.java b/lincs/src/org/labkey/lincs/LincsSchema.java index a2653f31..58ff020a 100644 --- a/lincs/src/org/labkey/lincs/LincsSchema.java +++ b/lincs/src/org/labkey/lincs/LincsSchema.java @@ -16,9 +16,9 @@ package org.labkey.lincs; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.json.JSONObject; +import org.jetbrains.annotations.NotNull; import org.labkey.api.collections.CaseInsensitiveHashSet; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerFilter; @@ -158,7 +158,7 @@ public SqlDialect getSqlDialect() } @Override - public QueryView createView(ViewContext context, @NotNull QuerySettings settings, BindException errors) + public @NotNull QueryView createView(ViewContext context, @NotNull QuerySettings settings, BindException errors) { if(LincsDataTable.NAME.equalsIgnoreCase(settings.getQueryName())) { diff --git a/lincs/src/org/labkey/lincs/cromwell/CromwellGctTask.java b/lincs/src/org/labkey/lincs/cromwell/CromwellGctTask.java index 5d794010..3075a374 100644 --- a/lincs/src/org/labkey/lincs/cromwell/CromwellGctTask.java +++ b/lincs/src/org/labkey/lincs/cromwell/CromwellGctTask.java @@ -38,7 +38,7 @@ public CromwellGctTask(Factory factory, PipelineJob job) var job = getJob(); LincsPspJobSupport support = job.getJobSupport(LincsPspJobSupport.class); - job.getLogger().info("Starting task to create L2 GCT for " + support.getRun().getFileName()); + job.getLogger().info("Starting task to create L2 GCT for {}", support.getRun().getFileName()); submitCromwellJob(support, job.getLogger()); @@ -53,7 +53,7 @@ private void submitCromwellJob(LincsPspJobSupport jobSupport, Logger log) throws if(l2GctExistsForRun(run, container)) { - log.info("L2 GCT for run " + run.getFileName() + " exists. Skipping Cromwell job submission."); + log.info("L2 GCT for run {} exists. Skipping Cromwell job submission.", run.getFileName()); return; } @@ -103,7 +103,7 @@ private void submitJob(CromwellConfig cromwellConfig, LincsModule.LincsAssay ass int attempts = 5; String lastStatus = ""; - log.info("Checking status of job at " + jobStatusUri); + log.info("Checking status of job at {}", jobStatusUri); while(true) { try @@ -149,7 +149,7 @@ private void submitJob(CromwellConfig cromwellConfig, LincsModule.LincsAssay ass } if(!lastStatus.equalsIgnoreCase(status.getJobStatus())) { - log.info("Cromwell job status: " + status.getJobStatus()); + log.info("Cromwell job status: {}", status.getJobStatus()); lastStatus = status.getJobStatus(); } diff --git a/lincs/src/org/labkey/lincs/cromwell/CromwellJobSubmitter.java b/lincs/src/org/labkey/lincs/cromwell/CromwellJobSubmitter.java index f7cb58be..6560ae41 100644 --- a/lincs/src/org/labkey/lincs/cromwell/CromwellJobSubmitter.java +++ b/lincs/src/org/labkey/lincs/cromwell/CromwellJobSubmitter.java @@ -49,7 +49,7 @@ public CromwellJobStatus submitJob(Container container, ITargetedMSRun run, Logg Path fileRootPath = fcs.getFileRootPath(container, FileContentService.ContentType.files); if(fileRootPath == null) { - log.error("Cannot get a file root path for container " + container.getPath()); + log.error("Cannot get a file root path for container {}", container.getPath()); return null; } @@ -57,7 +57,7 @@ public CromwellJobStatus submitJob(Container container, ITargetedMSRun run, Logg var skyDocPath = fileRootPath.resolve(run.getFileName()); if(!Files.isRegularFile(skyDocPath)) { - log.error("Skyline document file does not exist: " + skyDocPath); + log.error("Skyline document file does not exist: {}", skyDocPath); return null; } @@ -137,13 +137,13 @@ private Path copyReportToWorkDir(Module module, Path workDir, String reportTempl FileResource reportTemplateResource = (FileResource)module.getModuleResolver().lookup(org.labkey.api.util.Path.parse(reportTemplate)); if(reportTemplateResource == null) { - log.error("Could not find report template resource: " + reportTemplate); + log.error("Could not find report template resource: {}", reportTemplate); return null; } File reportFile = reportTemplateResource.getFile(); if(reportFile == null) { - log.error("File not found: " + reportTemplate); + log.error("File not found: {}", reportTemplate); return null; } var reportInWorkDir = workDir.resolve(reportTemplate); @@ -154,7 +154,7 @@ private Path copyReportToWorkDir(Module module, Path workDir, String reportTempl } catch (IOException e) { - log.error("Error copying report file " + reportFile + " to work directory: " + workDir.toAbsolutePath(), e); + log.error("Error copying report file {} to work directory: {}", reportFile, workDir.toAbsolutePath(), e); return null; } } @@ -167,7 +167,7 @@ private static java.nio.file.Path createDirIfNotExists(java.nio.file.Path parent { if(!Files.isDirectory(dir)) { - log.error("Path exists but is not a directory " + parent.toAbsolutePath()); + log.error("Path exists but is not a directory {}", parent.toAbsolutePath()); return null; } return dir; @@ -180,7 +180,7 @@ private static java.nio.file.Path createDirIfNotExists(java.nio.file.Path parent } catch (IOException e) { - log.error("Could not create subdirectory " + dirName + " in " + parent.toAbsolutePath(), e); + log.error("Could not create subdirectory {} in {}", dirName, parent.toAbsolutePath(), e); } } return null; diff --git a/lincs/src/org/labkey/lincs/cromwell/CromwellUtil.java b/lincs/src/org/labkey/lincs/cromwell/CromwellUtil.java index f13cbaa3..4c301579 100644 --- a/lincs/src/org/labkey/lincs/cromwell/CromwellUtil.java +++ b/lincs/src/org/labkey/lincs/cromwell/CromwellUtil.java @@ -42,13 +42,13 @@ public static CromwellJobStatus submitJob(CromwellConfig config, String wdl, Str builder.addPart("workflowOptions", new StringBody("{\"write_to_cache\": false, \"read_from_cache\": false}", ContentType.APPLICATION_JSON)); HttpEntity entity = builder.build(); post.setEntity(entity); - log.info("Submitting job to " + uri); + log.info("Submitting job to {}", uri); return executeRequest(log, client, post, "Submitting job"); } catch (IOException | HttpException e) { - log.error("Could not submit job. Error was:" + e.getMessage(), e); + log.error("Could not submit job. Error was:{}", e.getMessage(), e); return null; } } @@ -74,7 +74,7 @@ public static void abortJob(URI abortJobUri, Logger log) throws CromwellExceptio CromwellJobStatus status = executeRequest(log, client, post, "Aborting job"); if(status != null) { - log.info("Sent request to abort job. Returned status: " + status.getJobStatus()); + log.info("Sent request to abort job. Returned status: {}", status.getJobStatus()); } } catch (IOException | HttpException e) @@ -99,7 +99,7 @@ private static CromwellUtil.CromwellJobStatus executeRequest(Logger log, Closeab } else { - log.error(requestDesc + " failed. Response code was " + response.getCode() + " " + response.getReasonPhrase()); + log.error("{} failed. Response code was {} {}", requestDesc, response.getCode(), response.getReasonPhrase()); EntityUtils.consume(response.getEntity()); return null; } diff --git a/lincs/src/org/labkey/lincs/psp/LincsPspTask.java b/lincs/src/org/labkey/lincs/psp/LincsPspTask.java index 0af5368e..e2a99f4e 100644 --- a/lincs/src/org/labkey/lincs/psp/LincsPspTask.java +++ b/lincs/src/org/labkey/lincs/psp/LincsPspTask.java @@ -32,7 +32,7 @@ public LincsPspTask(Factory factory, PipelineJob job) PipelineJob job = getJob(); LincsPspJobSupport support = job.getJobSupport(LincsPspJobSupport.class); - job.getLogger().info("Running LINCS PSP pipeline for " + support.getRun().getBaseName()); + job.getLogger().info("Running LINCS PSP pipeline for {}", support.getRun().getBaseName()); postToPsp(support, job.getUser(), job.getLogger()); @@ -62,21 +62,21 @@ private void postToPsp(LincsPspJobSupport jobSupport, User user, Logger log) thr { if (oldPspJob != null) { - log.info("Resubmitting job for runId: " + run.getId() + ", name: " + run.getBaseName()); + log.info("Resubmitting job for runId: {}, name: {}", run.getId(), run.getBaseName()); log.info("Old job details: "); - log.info("Id: " + oldPspJob.getId()); - log.info("Pipeline job Id: " + oldPspJob.getPipelineJobId()); - log.info("Run Id: " + oldPspJob.getRunId()); - log.info("PSP Job Id: " + oldPspJob.getPspJobId()); - log.info("PSP Job name: " + oldPspJob.getPspJobName()); - log.info("PSP Job status: " + oldPspJob.getStatus()); - log.info("JSON: " + oldPspJob.getJson()); + log.info("Id: {}", oldPspJob.getId()); + log.info("Pipeline job Id: {}", oldPspJob.getPipelineJobId()); + log.info("Run Id: {}", oldPspJob.getRunId()); + log.info("PSP Job Id: {}", oldPspJob.getPspJobId()); + log.info("PSP Job name: {}", oldPspJob.getPspJobName()); + log.info("PSP Job status: {}", oldPspJob.getStatus()); + log.info("JSON: {}", oldPspJob.getJson()); log.info(("Resubmitting...")); } else { - log.info("Submitting job for runId: " + run.getId() + ", name: " + run.getBaseName()); + log.info("Submitting job for runId: {}, name: {}", run.getId(), run.getBaseName()); } if(pspJob.getPipelineJobId() == null) @@ -89,7 +89,7 @@ private void postToPsp(LincsPspJobSupport jobSupport, User user, Logger log) thr .getEffectiveValue(container); pspJob.setPspJobName(LincsPspUtil.getJobName(run, endpoint, suffix, log)); - log.info("PSP job name: " + pspJob.getPspJobName()); + log.info("PSP job name: {}", pspJob.getPspJobName()); LincsPspUtil.submitPspJob(endpoint, pspJob, run, user, log); } @@ -107,18 +107,18 @@ private void postToPsp(LincsPspJobSupport jobSupport, User user, Logger log) thr { try { - log.info("Checking status of job " + pspJob.getPspJobId()); + log.info("Checking status of job {}", pspJob.getPspJobId()); LincsPspUtil.updateJobStatus(endpoint, pspJob, user); - log.info("Status: " + pspJob.getStatus()); + log.info("Status: {}", pspJob.getStatus()); if(pspJob.isSuccess()) { - log.info("PSP job completed with status: " + pspJob.getStatus()); + log.info("PSP job completed with status: {}", pspJob.getStatus()); break; } if(pspJob.hasError()) { - log.error("Error in PSP job. Error: " + pspJob.getError()); + log.error("Error in PSP job. Error: {}", pspJob.getError()); break; } } diff --git a/lincs/src/org/labkey/lincs/psp/LincsPspUtil.java b/lincs/src/org/labkey/lincs/psp/LincsPspUtil.java index 2737df4f..438b1cf8 100644 --- a/lincs/src/org/labkey/lincs/psp/LincsPspUtil.java +++ b/lincs/src/org/labkey/lincs/psp/LincsPspUtil.java @@ -63,7 +63,7 @@ public static void submitPspJob(PspEndpoint endPoint, LincsPspJob pspJob, ITarge try { submitJob(run, endPoint, pspJob, log); - log.info("Sent POST request to " + endPoint.getUrl()); + log.info("Sent POST request to {}", endPoint.getUrl()); } catch (IOException e) { @@ -102,14 +102,14 @@ private static void submitJob(ITargetedMSRun run, PspEndpoint server, LincsPspJo wr.flush(); } - log.info("Sending POST request to " + server.getUrl()); + log.info("Sending POST request to {}", server.getUrl()); int responseCode = conn.getResponseCode(); - log.info("Response code - " + responseCode); + log.info("Response code - {}", responseCode); String response; try (InputStream in = conn.getInputStream()) { response = IOUtils.toString(in, StandardCharsets.UTF_8); - log.info("Response from server: " + response); + log.info("Response from server: {}", response); } // String response = "{\"name\":\"LINCS_P100_DIA_Plate52y_annotated_minimized_2017-08-23_11-20-58\",\"assay\":\"P100\",\"status\":\"Waiting_To_Download\",\"id\":\"5c324f97b306063b135bf99c\",\"created\":\"2019-01-06T18:57:27.484Z\",\"last_modified\":\"2019-01-06T18:57:27.484Z\",\"level 2\":{\"panorama\":{\"method\":\"GET\",\"url\":\"https://panoramaweb-dr.gs.washington.edu/lincs/LINCS-DCIC/PSP/P100/runGCTReportApi.view?runId=32394&remote=true&reportName=GCT%20File%20P100\"}},\"level 3\":{\"panorama\":{\"method\":\"PUT\",\"url\":\"https://panoramaweb-dr.gs.washington.edu/_webdav/LINCS-DCIC/PSP/P100/%40files/GCT/LINCS_P100_DIA_Plate52y_annotated_minimized_2017-08-23_11-20-58_LVL3.gct\"}},\"level 4\":{\"panorama\":{\"method\":\"PUT\",\"url\":\"https://panoramaweb-dr.gs.washington.edu/_webdav/LINCS-DCIC/PSP/P100/%40files/GCT/LINCS_P100_DIA_Plate52y_annotated_minimized_2017-08-23_11-20-58_LVL4.gct\"}},\"config\":{\"panorama\":{\"method\":\"PUT\",\"url\":\"https://panoramaweb-dr.gs.washington.edu/_webdav/LINCS-DCIC/PSP/P100/%40files/GCT/LINCS_P100_DIA_Plate52y_annotated_minimized_2017-08-23_11-20-58.cfg\"}}}"; @@ -206,7 +206,7 @@ public static String getJobName(ITargetedMSRun run, PspEndpoint server, String j private static boolean jobExists(String name, PspEndpoint server, Logger log) throws LincsPspException { - log.info("Looking for existing job with name " + name); + log.info("Looking for existing job with name {}", name); HttpURLConnection conn = null; URL url = null; @@ -230,8 +230,8 @@ private static boolean jobExists(String name, PspEndpoint server, Logger log) th } if (responseCode != 200) { - log.error("Server returned response code " + responseCode); - log.info("Response from server: " + response); + log.error("Server returned response code {}", responseCode); + log.info("Response from server: {}", response); throw new LincsPspException("Error looking for job with name " + name + ". URL: " + url); } else @@ -239,7 +239,7 @@ private static boolean jobExists(String name, PspEndpoint server, Logger log) th JSONArray json = getJsonArray(response); if(!json.isEmpty()) { - log.info("Job with name " + name + "exists."); + log.info("Job with name {}exists.", name); return true; } } diff --git a/nextflow/src/org/labkey/nextflow/NextFlowController.java b/nextflow/src/org/labkey/nextflow/NextFlowController.java index f3adaef1..f81e00a2 100644 --- a/nextflow/src/org/labkey/nextflow/NextFlowController.java +++ b/nextflow/src/org/labkey/nextflow/NextFlowController.java @@ -269,7 +269,7 @@ public ModelAndView getView(AnalyzeForm o, boolean b, BindException errors) } // NextFlow operates on the full directory so show the list to the user, regardless of what they selected // from the file listing - FileLike inputDir = selectedFiles.get(0).getParent(); + FileLike inputDir = selectedFiles.getFirst().getParent(); List inputFiles = inputDir.getChildren().stream().filter(new PipelineProvider.FileTypesEntryFilter(NextFlowProtocol.INPUT_TYPES)).toList(); if (inputFiles.isEmpty()) diff --git a/nextflow/src/org/labkey/nextflow/pipeline/NextFlowPipelineJob.java b/nextflow/src/org/labkey/nextflow/pipeline/NextFlowPipelineJob.java index 71728521..f209b22f 100644 --- a/nextflow/src/org/labkey/nextflow/pipeline/NextFlowPipelineJob.java +++ b/nextflow/src/org/labkey/nextflow/pipeline/NextFlowPipelineJob.java @@ -44,7 +44,7 @@ protected NextFlowPipelineJob() public static NextFlowPipelineJob create(ViewBackgroundInfo info, @NotNull PipeRoot root, Path templateConfig, List inputFiles) throws IOException { - FileLike parentDir = inputFiles.get(0).getParent(); + FileLike parentDir = inputFiles.getFirst().getParent(); String jobName = FileUtil.makeFileNameWithTimestamp("NextFlow"); FileLike jobDir = parentDir.resolveChild(jobName); diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicController.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicController.java index e04e7e79..1ad6d331 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicController.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicController.java @@ -23,9 +23,9 @@ import org.apache.commons.validator.routines.EmailValidator; import org.apache.commons.validator.routines.UrlValidator; import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.json.JSONObject; +import org.jetbrains.annotations.NotNull; import org.labkey.api.action.ApiResponse; import org.labkey.api.action.ApiSimpleResponse; import org.labkey.api.action.ConfirmAction; @@ -229,7 +229,6 @@ import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; @@ -2595,7 +2594,7 @@ void populateForm(PublishExperimentForm form, ExperimentAnnotations exptAnnotati { throw new NotFoundException("Could not find any journals."); } - form.setJournalId(journals.get(0).getId()); // This is "Panorama Public" on panoramaweb.org + form.setJournalId(journals.getFirst().getId()); // This is "Panorama Public" on panoramaweb.org form.setDataLicense(DataLicense.defaultLicense().name()); // CC BY 4.0 is default license form.setKeepPrivate(true); @@ -3214,12 +3213,6 @@ public void setShortCopyUrl(String shortCopyUrl) _shortCopyUrl = shortCopyUrl; } - @Override - public ExperimentAnnotations lookupExperiment() - { - return ExperimentAnnotationsManager.get(getId()); - } - public Journal lookupJournal() { return JournalManager.getJournal(getJournalId()); @@ -4070,7 +4063,6 @@ public void validateCommand(IdForm form, Errors errors) if (_journal == null) { errors.reject(ERROR_MSG, "Could not find a journal with Id: " + _journalSubmission.getJournalId()); - return; } } @@ -4315,7 +4307,7 @@ public ApiResponse execute(CompletionFieldForm completionForm, BindException err if(!StringUtils.isBlank(completionForm.getToken())) { completions = NcbiUtils.getCompletions(completionForm.getToken()); - LOG.info("found " + completions.size() + " matches from NCBI for query string " + PageFlowUtil.encodeURIComponent(completionForm.getToken())); + LOG.info("found {} matches from NCBI for query string {}", completions.size(), PageFlowUtil.encodeURIComponent(completionForm.getToken())); } } catch(Exception e) @@ -4359,23 +4351,23 @@ public ModelAndView getView(PublishExperimentForm form, boolean reshow, BindExce @Override protected void checkIfResubmit(ExperimentAnnotations experimentAnnotations, PublishExperimentForm form, Errors errors) { - return; // For this action we don't need to check if this is a 'resubmit' + // For this action we don't need to check if this is a 'resubmit' } @Override - protected ModelAndView getMissingMetadataView(ExperimentAnnotations expAnnotations, MissingMetadata missingMedata, boolean pxSubmission, BindException errors) + protected @NotNull ModelAndView getMissingMetadataView(ExperimentAnnotations expAnnotations, MissingMetadata missingMedata, boolean pxSubmission, BindException errors) { return getMissingMetadataView(new MissingMetadataBean(expAnnotations, pxSubmission, missingMedata, false), "Missing Metadata in Experiment", errors); } @Override - protected HtmlView getStartValidationView() + protected @NotNull HtmlView getStartValidationView() { return getStartValidationView(null, false); } @Override - protected HtmlView getStartValidationView(DOM.Renderable message) + protected @NotNull HtmlView getStartValidationView(DOM.Renderable message) { return getStartValidationView(message, false); } @@ -4404,7 +4396,6 @@ protected WebPartView getPublishFormView(PublishExperimentForm form, ExperimentA @Override public void validateCommand(PublishExperimentForm form, Errors errors) { - return; } @Override @@ -5179,7 +5170,6 @@ public void validateCommand(DoiForm form, Errors errors) { errors.reject(ERROR_MSG, "Experiment id " + _expAnnot.getId() + " is not the last copied submission. " + getActionName(this.getClass()) + " is only allowed in the last copy of the submitted data"); - return; } } } @@ -6517,7 +6507,6 @@ public boolean handlePost(SelectedIdsForm deleteForm, BindException errors) @Override public void validateCommand(SelectedIdsForm deleteForm, Errors errors) { - return; } @Override @@ -7009,7 +6998,6 @@ public void validateCommand(PublicationDetailsForm form, Errors errors) if(!form.getPubmedId().matches(PUBMED_ID)) { errors.reject(ERROR_MSG, "PubMed ID should be a number with 1 to 8 digits"); - return; } } else @@ -7023,7 +7011,6 @@ public void validateCommand(PublicationDetailsForm form, Errors errors) if (!urlValidator.isValid(form.getLink())) { errors.reject(ERROR_MSG, "Publication Link is not valid"); - return; } } // Validation removed: no need to ensure that publication details entered in the form differ from the @@ -7037,7 +7024,6 @@ else if (_copiedExperiment.isPublic()) // as a result of this action errors.reject(ERROR_MSG, String.format("Data on %s at %s is already public", _journal.getName(), _copiedExperiment.getShortUrl().renderShortURL())); - return; } } @@ -7165,7 +7151,7 @@ private void postToBluesky() BlueskySettings settings = BlueskySettingsManager.getSettings(); if (!settings.isAutopost()) { - logger.info("Auto-post to Bluesky is disabled. Unable to create a post for experiment Id " + _expAnnot.getId()); + logger.info("Auto-post to Bluesky is disabled. Unable to create a post for experiment Id {}", _expAnnot.getId()); return; } try @@ -7174,7 +7160,7 @@ private void postToBluesky() } catch (BlueskyException e) { - logger.error("Unable to create a Bluesky post for experiment Id " + _expAnnot.getId(), e); + logger.error("Unable to create a Bluesky post for experiment Id {}", _expAnnot.getId(), e); } } @@ -9894,7 +9880,7 @@ public boolean handlePost(PanoramaPublicMessageForm form, BindException errors) } @Override - public URLHelper getSuccessURL(PanoramaPublicMessageForm form) + public @NotNull URLHelper getSuccessURL(PanoramaPublicMessageForm form) { return PageFlowUtil.urlProvider(PipelineUrls.class).urlBegin(getContainer()); } @@ -10732,7 +10718,7 @@ private void fetchCitation() } catch (Exception e) { - LOG.warn("Failed to fetch citation for " + _publicationMatch.getPublicationIdLabel() + ": " + e.getMessage()); + LOG.warn("Failed to fetch citation for {}: {}", _publicationMatch.getPublicationIdLabel(), e.getMessage()); } } } @@ -10802,7 +10788,7 @@ public ModelAndView getView(ExperimentIdForm form, BindException errors) } catch (Exception e) { - LOG.error("Error searching for publications for experiment " + _exptAnnotations.getId(), e); + LOG.error("Error searching for publications for experiment {}", _exptAnnotations.getId(), e); errors.reject(ERROR_MSG, "Error searching for publications: " + e.getMessage()); return new SimpleErrorView(errors); } @@ -10903,7 +10889,7 @@ public Object execute(ExperimentIdForm form, BindException errors) } catch (Exception e) { - LOG.error("Error searching for publications for experiment " + form.getId(), e); + LOG.error("Error searching for publications for experiment {}", form.getId(), e); response.put("success", false); response.put("error", "Error searching for publications: " + e.getMessage()); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicFileImporter.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicFileImporter.java index 9048e16c..02b64843 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicFileImporter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicFileImporter.java @@ -59,7 +59,7 @@ public void process(@Nullable PipelineJob job, FolderImportContext ctx, VirtualF if (null == targetRoot) { - log.error("File copy target folder not found: " + ctx.getContainer().getPath()); + log.error("File copy target folder not found: {}", ctx.getContainer().getPath()); return; } @@ -77,17 +77,17 @@ public void process(@Nullable PipelineJob job, FolderImportContext ctx, VirtualF if (!targetFiles.exists()) { - log.warn("Panorama public file copy target not found. Creating directory: " + targetFiles); + log.warn("Panorama public file copy target not found. Creating directory: {}", targetFiles); Files.createDirectories(targetFiles.toPath()); } if (expJob.isMoveAndSymlink()) { - log.info("Moving files to folder " + ctx.getContainer().getPath() + " and creating symlinks"); + log.info("Moving files to folder {} and creating symlinks", ctx.getContainer().getPath()); } else { - log.info("Copying files to folder " + ctx.getContainer().getPath()); + log.info("Copying files to folder {}", ctx.getContainer().getPath()); } PanoramaPublicSymlinkManager.get().moveAndSymLinkDirectory(expJob, ctx.getContainer(), sourceFiles, targetFiles, log); @@ -98,7 +98,7 @@ public void process(@Nullable PipelineJob job, FolderImportContext ctx, VirtualF private void alignDataFileUrls(User user, Container targetContainer, Logger log) throws BatchValidationException, ImportException { - log.info("Aligning data files urls in folder: " + targetContainer.getPath()); + log.info("Aligning data files urls in folder: {}", targetContainer.getPath()); FileContentService fcs = FileContentService.get(); if (null == fcs) @@ -118,7 +118,7 @@ private void alignDataFileUrls(User user, Container targetContainer, Logger log) { run.setFilePathRootPath(fileRootPath); run.save(user); - log.debug("Setting filePathRoot on copied run: " + run.getName() + " to: " + fileRootPath); + log.debug("Setting filePathRoot on copied run: {} to: {}", run.getName(), fileRootPath); for (ExpData data : run.getAllDataUsedByRun()) { @@ -135,17 +135,17 @@ private void alignDataFileUrls(User user, Container targetContainer, Logger log) { data.setDataFileURI(newDataPath.toUri()); data.save(user); - log.debug("Setting dataFileUri on copied data: " + data.getName() + " to: " + newDataPath); + log.debug("Setting dataFileUri on copied data: {} to: {}", data.getName(), newDataPath); } else { - log.error("Data file not found: " + newDataPath.toUri()); + log.error("Data file not found: {}", newDataPath.toUri()); errors = true; } } else { - log.error("Unexpected data file path. Could not align dataFileUri. " + data.getFilePath().toString()); + log.error("Unexpected data file path. Could not align dataFileUri. {}", data.getFilePath().toString()); errors = true; } } @@ -177,9 +177,9 @@ private void alignDataFileUrls(User user, Container targetContainer, Logger log) * This method finds a match and updates skydDataId in TargetedMSRun in the case where the skyDataId is not linked * to the ExpRun. */ - private void updateSkydDataIds(User user, Container targetContainer, Logger log) throws BatchValidationException, ImportException + private void updateSkydDataIds(User user, Container targetContainer, Logger log) throws ImportException { - log.info("Updating skydDataIds in folder: " + targetContainer.getPath()); + log.info("Updating skydDataIds in folder: {}", targetContainer.getPath()); boolean errors = false; ExperimentService expService = ExperimentService.get(); @@ -197,7 +197,7 @@ private void updateSkydDataIds(User user, Container targetContainer, Logger log) var skydData = expService.getExpData(skydDataId); if (skydData == null) { - log.error("Could not find a row for skydDataId " + skydDataId + " for run " + targetedmsRun.getFileName()); + log.error("Could not find a row for skydDataId {} for run {}", skydDataId, targetedmsRun.getFileName()); errors = true; } else if (skydData.getRun() == null) @@ -212,12 +212,12 @@ else if (skydData.getRun() == null) if (matchingData.isPresent()) { ExpData data = matchingData.get(); - log.debug("Updating skydDataId for run " + targetedmsRun.getFileName() + " to " + data.getRowId()); + log.debug("Updating skydDataId for run {} to {}", targetedmsRun.getFileName(), data.getRowId()); tmsService.updateSkydDataId(targetedmsRun, data, user); } else { - log.error("Could not find matching skyData for run " + targetedmsRun.getFileName()); + log.error("Could not find matching skyData for run {}", targetedmsRun.getFileName()); errors = true; } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicListener.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicListener.java index a0c4ba3f..435892b4 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicListener.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicListener.java @@ -42,8 +42,6 @@ import java.beans.PropertyChangeEvent; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -84,12 +82,6 @@ public void containerMoved(Container c, Container oldParent, User user) PanoramaPublicSymlinkManager.get().fireSymlinkUpdateContainer(oldParent, c, user); } - @Override - public @NotNull Collection canMove(Container c, Container newParent, User user) - { - return Collections.emptyList(); - } - @Override public void propertyChange(PropertyChangeEvent evt) { diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicMetadataImporter.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicMetadataImporter.java index 2fce7ace..7aaefb73 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicMetadataImporter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicMetadataImporter.java @@ -1,6 +1,5 @@ package org.labkey.panoramapublic; -import org.apache.commons.lang3.ArrayUtils; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; import org.labkey.api.admin.AbstractFolderImportFactory; @@ -82,7 +81,7 @@ else if (experiments.size() > 1) { throw new PipelineJobException("More than one experiment found in the folder " + container.getPath()); } - ExpExperiment experiment = experiments.get(0); + ExpExperiment experiment = experiments.getFirst(); try (DbScope.Transaction transaction = PanoramaPublicManager.getSchema().getScope().ensureTransaction()) { diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicModule.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicModule.java index e483b033..bcd03a2a 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicModule.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicModule.java @@ -345,13 +345,6 @@ public SimpleFilter.FilterClause createFilter(String sequenceColumnName) }; } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } - @Override @NotNull public Set getSchemaNames() diff --git a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicSymlinkManager.java b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicSymlinkManager.java index da40e3de..9138eefe 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicSymlinkManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/PanoramaPublicSymlinkManager.java @@ -74,7 +74,7 @@ private void handleContainerSymlinks(File source, PanoramaPublicSymlinkHandler h Path target = Files.readSymbolicLink(filePath); handler.handleSymlink(filePath, target, container, user); } catch (IOException x) { - _log.error("Unable to resolve symlink target for symlink at " + filePath); + _log.error("Unable to resolve symlink target for symlink at {}", filePath); } } } @@ -165,7 +165,7 @@ private void fireSymlinkCopiedExperimentDelete(ExperimentAnnotations expAnnot, C Files.move(target, link, REPLACE_EXISTING); // Move the files back to the next highest version of the experiment addReplaceSymlinkWithTargetAuditEvent(link, target, c, u); - _log.info("File moved from " + target + " to " + link); + _log.info("File moved from {} to {}", target, link); // This should update the symlinks in the submitted folder as well as // symlinks in versions older than this one to point to the files in the next highest version. @@ -195,7 +195,7 @@ private void fireSymlinkCopiedExperimentDelete(ExperimentAnnotations expAnnot, C Files.move(target, link, REPLACE_EXISTING); addReplaceSymlinkWithTargetAuditEvent(link, target, c, u); - _log.info("File moved from " + target + " to " + link); + _log.info("File moved from {} to {}", target, link); // Symlinks in the source container point to -> current version container on Panorama Public // Symlinks in previous versions of the data on Panorama Public point to -> current version container on Panorama Public @@ -302,7 +302,7 @@ public void fireSymlinkUpdate(Path oldTarget, Path newTarget, Container containe addLinkUpdatedAuditEvent(link, newTarget, c, u); if (log != null) { - log.info("Target for symlink " + link + " updated to " + newTarget); + log.info("Target for symlink {} updated to {}", link, newTarget); } } catch (IOException e) @@ -335,7 +335,7 @@ public void moveAndSymLinkDirectory(CopyExperimentPipelineJob job, Container tar if (!Files.exists(targetPath)) { Files.createDirectory(targetPath); - log.debug("Directory created: " + targetPath); + log.debug("Directory created: {}", targetPath); } moveAndSymLinkDirectory(job, targetContainer, file, targetPath.toFile(), log); @@ -363,12 +363,12 @@ public void moveAndSymLinkDirectory(CopyExperimentPipelineJob job, Container tar if (Files.isSymbolicLink(filePath)) { Files.copy(Files.readSymbolicLink(filePath), filePath, REPLACE_EXISTING); - log.debug("Copy file over symlink: " + filePath); + log.debug("Copy file over symlink: {}", filePath); } // Copy the file to panorama public Files.copy(filePath, targetPath, REPLACE_EXISTING); - log.debug("Copied file " + filePath + " to " + targetPath); + log.debug("Copied file {} to {}", filePath, targetPath); fcs.fireFileCreateEvent(targetPath, job.getUser(), job.getContainer()); continue; @@ -377,11 +377,11 @@ public void moveAndSymLinkDirectory(CopyExperimentPipelineJob job, Container tar // Symbolic link should move the target file over. This would be for a re-copy to public. if (Files.isSymbolicLink(filePath)) { - log.debug("Source file is a symlink: " + filePath); + log.debug("Source file is a symlink: {}", filePath); Path oldPath = Files.readSymbolicLink(filePath); Files.move(oldPath, targetPath, REPLACE_EXISTING); - log.debug("Moved symlink target " + oldPath + " to " + targetPath); + log.debug("Moved symlink target {} to {}", oldPath, targetPath); fcs.fireFileCreateEvent(targetPath, job.getUser(), job.getContainer()); addFileMovedAuditEvent(targetPath, oldPath, targetContainer, job.getUser()); @@ -397,17 +397,17 @@ public void moveAndSymLinkDirectory(CopyExperimentPipelineJob job, Container tar // Add an audit event in the previous version container. addReplaceTargetWithSymlinkAuditEvent(symlink, targetPath, oldTargetContainer, job.getUser()); } - log.debug("Replaced old target with symlink: " + symlink); + log.debug("Replaced old target with symlink: {}", symlink); } else { Files.move(filePath, targetPath, REPLACE_EXISTING); - log.debug("Moved file " + filePath + " to " + targetPath); + log.debug("Moved file {} to {}", filePath, targetPath); fcs.fireFileCreateEvent(targetPath, job.getUser(), job.getContainer()); addFileMovedAuditEvent(targetPath, filePath, targetContainer, job.getUser()); Files.createSymbolicLink(filePath, targetPath); - log.debug("Created symlink " + filePath + " targeting " + targetPath); + log.debug("Created symlink {} targeting {}", filePath, targetPath); addLinkCreatedAuditEvent(filePath, targetPath, sourceContainer, job.getUser()); // We don't need to update any symlinks here since the source container should not have any symlink targets. } @@ -477,13 +477,13 @@ public boolean verifySymlinks() throws IOException if(!linkInvalidTarget.isEmpty()) { String linkInvalidTargets = linkInvalidTarget.entrySet().stream().map(String::valueOf).collect(Collectors.joining("\n")); - _log.error(linkInvalidTarget.size() + " Symlinks with invalid targets: \n" + linkInvalidTargets); + _log.error("{} Symlinks with invalid targets: \n{}", linkInvalidTarget.size(), linkInvalidTargets); } if(!linkWithSymlinkTarget.isEmpty()) { String linkWithSymlinkTargets = linkWithSymlinkTarget.entrySet().stream().map(String::valueOf).collect(Collectors.joining("\n")); - _log.error(linkWithSymlinkTarget.size() + " Symlinks targeting symlinks: \n" + linkWithSymlinkTargets); + _log.error("{} Symlinks targeting symlinks: \n{}", linkWithSymlinkTarget.size(), linkWithSymlinkTargets); } return linkInvalidTarget.isEmpty() && linkWithSymlinkTarget.isEmpty(); diff --git a/panoramapublic/src/org/labkey/panoramapublic/bluesky/BlueskyApiClient.java b/panoramapublic/src/org/labkey/panoramapublic/bluesky/BlueskyApiClient.java index 54307f01..1530ed9d 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/bluesky/BlueskyApiClient.java +++ b/panoramapublic/src/org/labkey/panoramapublic/bluesky/BlueskyApiClient.java @@ -72,7 +72,7 @@ public LoginInfo login(@NotNull BlueskySettings settings, boolean testAccount) t httpPost.setHeader("Content-Type", "application/json"); httpPost.setEntity(new StringEntity(requestBody.toString(), ContentType.APPLICATION_JSON)); - logger.debug(String.format("Logging into Bluesky as '%s' at endpoint '%s'", config.getAccount(), config.getAuthEndpoint())); + logger.debug("Logging into Bluesky as '{}' at endpoint '{}'", config.getAccount(), config.getAuthEndpoint()); BlueskyResponse response; try (CloseableHttpClient httpClient = HttpClients.createDefault()) @@ -182,8 +182,7 @@ public String createPost(@NotNull ExperimentAnnotations exptAnnotations, @NotNul httpPost.setHeader("Authorization", "Bearer " + loginInfo.getAccessJwt()); httpPost.setEntity(new StringEntity(requestBody.toString(), ContentType.APPLICATION_JSON)); - logger.debug(String.format("Posting to Bluesky account %s at endpoint '%s' for Panorama Public data at '%s'", - config.getAccount(), config.getPostEndpoint(), exptAnnotations.getShortUrl().renderShortURL())); + logger.debug("Posting to Bluesky account {} at endpoint '{}' for Panorama Public data at '{}'", config.getAccount(), config.getPostEndpoint(), exptAnnotations.getShortUrl().renderShortURL()); BlueskyResponse response; String blueskyAtUri; @@ -446,12 +445,12 @@ private JSONObject uploadImage(@NotNull Attachment attachment, @NotNull Attachme } catch (FileNotFoundException e) { - logger.error("Image attachment file not found: " + attachment.getName(), e); + logger.error("Image attachment file not found: {}", attachment.getName(), e); throw new BlueskyException("Image attachment file not found", e); } catch (IOException e) { - logger.error("Error reading image file: " + attachment.getName(), e); + logger.error("Error reading image file: {}", attachment.getName(), e); throw new BlueskyException("Error reading image file", e); } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateExporter.java b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateExporter.java index 52be0127..d90b0da0 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateExporter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateExporter.java @@ -44,7 +44,7 @@ public static void exportLibState(@NotNull File file, @NotNull Container contain void exportLibraryState(Container container, File file, User user, TargetedMSService svc) throws ChromLibStateException { - _log.info(String.format("Exporting %s library state in container '%s' to file '%s'.", libTypeString(), container.getPath(), file.getPath())); + _log.info("Exporting {} library state in container '{}' to file '{}'.", libTypeString(), container.getPath(), file.getPath()); try(PrintWriter writer = PrintWriters.getPrintWriter(file)) { @@ -57,10 +57,10 @@ void exportLibraryState(Container container, File file, User user, TargetedMSSer { if (run.getRepresentativeDataState() == RunRepresentativeDataState.NotRepresentative) { - _log.info(String.format("'%s' does not contain any library %ss. Ignoring.", run.getFileName(), libTypeString())); + _log.info("'{}' does not contain any library {}s. Ignoring.", run.getFileName(), libTypeString()); continue; } - _log.info(String.format("Exporting library state of %ss in '%s'.", libTypeString(), run.getFileName())); + _log.info("Exporting library state of {}s in '{}'.", libTypeString(), run.getFileName()); exportLibStateForRun(run, svc, _log, writer, container, user); } } @@ -95,7 +95,7 @@ void exportLibStateForRun(ITargetedMSRun run, TargetedMSService svc, Logger log, { // For each run get a list of peptide groups List peptideGroups = ChromLibStateManager.getPeptideGroups(run, svc); - log.info(String.format("Found %d peptide groups.", peptideGroups.size())); + log.info("Found {} peptide groups.", peptideGroups.size()); for (LibPeptideGroup pepGrp : peptideGroups) { // For each run / peptide group write the representative state diff --git a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateImporter.java b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateImporter.java index 45d7e7e7..ad7b3f35 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateImporter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateImporter.java @@ -76,7 +76,7 @@ void importFromFile(File libStateFile) throws ChromLibStateException throw new IllegalStateException("Callers should start their own transaction"); } - _log.info(String.format("Importing %s library state in container '%s' from file '%s'.", libTypeString(), _container.getPath(), libStateFile.getPath())); + _log.info("Importing {} library state in container '{}' from file '{}'.", libTypeString(), _container.getPath(), libStateFile.getPath()); try (TabLoader reader = new TabLoader(libStateFile, true)) { @@ -132,7 +132,7 @@ void parseLibStateRow(Map row) throws ChromLibStateException var map = new HashMap(); map.put(REPRESENTATIVEDATASTATE, RunRepresentativeDataState.valueOf(runState)); Table.update(null, _svc.getTableInfoRuns(), map, _currentRun.getId()); - _log.info(String.format("Importing library state of %ss in '%s'.", libTypeString(), run.getFileName())); + _log.info("Importing library state of {}s in '{}'.", libTypeString(), run.getFileName()); onNextRun(); @@ -191,7 +191,7 @@ void updateState(TableInfo tableInfo, List entityIds, RepresentativeDataSt DbSchema schema = svc.getUserSchema(user, container).getDbSchema(); schema.getSqlDialect().appendInClauseSql(sql, entityIds); int updated = new SqlExecutor(schema).execute(sql); - log.debug("UPDATED " + updated + " rows in " + tableInfo.getName()); + log.debug("UPDATED {} rows in {}", updated, tableInfo.getName()); } private static class ProteinLibStateImporter extends ChromLibStateImporter @@ -251,10 +251,10 @@ void parseLibStateRow(Map row) throws ChromLibStateException // This is enforced during document import (SkylineDocImporter.insertPeptideGroup). throw new ChromLibStateException(String.format("Expected one db row for peptide group '%s' in the Skyline document '%s'. Container '%s'. " + "Found %d rows (Ids: %s).", - pepGrpMatches.get(0).getLabel(), getSkyFile(row), _container.getPath(), pepGrpMatches.size(), + pepGrpMatches.getFirst().getLabel(), getSkyFile(row), _container.getPath(), pepGrpMatches.size(), StringUtils.join(pepGrpMatches.stream().map(LibPeptideGroup::getId).collect(Collectors.toList()), ','))); } - var pepGrp = pepGrpMatches.get(0); + var pepGrp = pepGrpMatches.getFirst(); if (pepGrp.getRepresentativeDataState() != RepresentativeDataState.NotRepresentative) { List pepGrpIdsForState = _pepGrpsForState.computeIfAbsent(pepGrp.getRepresentativeDataState(), l -> new ArrayList<>()); @@ -291,7 +291,7 @@ private void updatePrecursorState(List pepGrpIds, RepresentativeDataState sql.append(" AND gm.Id = gp.generalMoleculeId "); int updated = new SqlExecutor(svc.getUserSchema(user, container).getDbSchema()).execute(sql); - log.debug("UPDATED " + updated + " rows in " + svc.getTableInfoGeneralMolecule().getName()); + log.debug("UPDATED {} rows in {}", updated, svc.getTableInfoGeneralMolecule().getName()); } } @@ -449,7 +449,7 @@ LibGeneralPrecursor getPrecursorDbMatch(LibGeneralPrecursor tsvPrecursor, String tsvPrecursor.getKey(), _pepGrpKey.toString(), skyFile, container.getPath(), dbPepGrpMatches.size())); } - var pepGrpMatch = dbPepGrpMatches.get(0); + var pepGrpMatch = dbPepGrpMatches.getFirst(); tsvPrecursor.setPeptideGroupId(pepGrpMatch.getDbPepGrpId()); tsvPrecursor.setId(pepGrpMatch.getPrecursorDbId(tsvPrecursor)); return tsvPrecursor; diff --git a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateManager.java b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateManager.java index e540a927..bb9925d4 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/chromlib/ChromLibStateManager.java @@ -184,7 +184,7 @@ private static void changeFileName(Path path, Container container, TargetedMSSer String newFileName = svc.getChromLibFileName(container, revision); Path targetFile = path.getParent().resolve(newFileName); - log.info(String.format("Changing chromatogram library file name from '%s' to '%s'.", path.getFileName().toString(), newFileName)); + log.info("Changing chromatogram library file name from '{}' to '{}'.", path.getFileName().toString(), newFileName); if (!Files.exists(targetFile)) { FileUtils.moveFile(path.toFile(), targetFile.toFile()); diff --git a/panoramapublic/src/org/labkey/panoramapublic/model/JournalSubmission.java b/panoramapublic/src/org/labkey/panoramapublic/model/JournalSubmission.java index 8151aea3..8dde86ba 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/model/JournalSubmission.java +++ b/panoramapublic/src/org/labkey/panoramapublic/model/JournalSubmission.java @@ -117,7 +117,7 @@ private List submissions() */ public @Nullable Submission getLatestSubmission() { - return !submissions().isEmpty() ? submissions().get(0) : null; + return !submissions().isEmpty() ? submissions().getFirst() : null; } /** @@ -142,7 +142,7 @@ public boolean hasPendingSubmission() public @Nullable Submission getLatestCopiedSubmission() { List copiedSubmissions = getCopiedSubmissions(); - return !copiedSubmissions.isEmpty() ? copiedSubmissions.get(0) : null; + return !copiedSubmissions.isEmpty() ? copiedSubmissions.getFirst() : null; } /** diff --git a/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLib.java b/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLib.java index 09be78f8..04483332 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLib.java +++ b/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLib.java @@ -107,7 +107,7 @@ public JSONObject toJSON(Container expContainer) // Add the database Id of a library used with one of the Skyline documents so that we can display a link to // add the "Add Library Information". The same library can be used with multiple documents. A new row is // created in the targetedms.spectrumlibrary table for each document. - jsonObject.put("iSpecLibId", docLibraries.get(0).getSpectrumLibraryId()); + jsonObject.put("iSpecLibId", docLibraries.getFirst().getSpectrumLibraryId()); } } return jsonObject; diff --git a/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLibValidation.java b/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLibValidation.java index c8682646..2a74338a 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLibValidation.java +++ b/panoramapublic/src/org/labkey/panoramapublic/model/validation/SpecLibValidation.java @@ -313,7 +313,7 @@ public boolean isPrositLibrary() // supports multiple Koina models. if(isBibliospecLibrary() && getSpectrumFiles().size() == 1 && getIdFiles().isEmpty()) { - String modelName = getSpectrumFiles().get(0).getName(); + String modelName = getSpectrumFiles().getFirst().getName(); return "Prositintensity_prosit_publication_v1".equals(modelName) || StringUtils.startsWith(modelName, "Koina-"); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/ncbi/NcbiPublicationSearchServiceImpl.java b/panoramapublic/src/org/labkey/panoramapublic/ncbi/NcbiPublicationSearchServiceImpl.java index cae6c3f7..b13ec7d6 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/ncbi/NcbiPublicationSearchServiceImpl.java +++ b/panoramapublic/src/org/labkey/panoramapublic/ncbi/NcbiPublicationSearchServiceImpl.java @@ -146,7 +146,7 @@ private static Logger getLog(@Nullable Logger logger) } catch (IOException e) { - log.error("Error submitting a request to NCBI Literature Citation Exporter. URL: " + queryUrl, e); + log.error("Error submitting a request to NCBI Literature Citation Exporter. URL: {}", queryUrl, e); } return null; } @@ -174,7 +174,7 @@ static String parseCitation(String response, String publicationId, DB database, } catch (JSONException e) { - log.error("Error parsing response from NCBI Literature Citation Exporter for " + database.getLabel() + " ID " + publicationId, e); + log.error("Error parsing response from NCBI Literature Citation Exporter for {} ID {}", database.getLabel(), publicationId, e); } return null; } @@ -183,7 +183,7 @@ static String parseCitation(String response, String publicationId, DB database, public PublicationMatch searchForPublication(@NotNull ExperimentAnnotations expAnnotations, @Nullable Logger logger) { List matches = searchForPublication(expAnnotations, 1, logger, true); - return matches.isEmpty() ? null : matches.get(0); + return matches.isEmpty() ? null : matches.getFirst(); } @Override @@ -324,7 +324,7 @@ private List executeSearch(String query, String database, Logger log) } catch (IOException | JSONException e) { - log.error("Error searching " + database + " with query: " + query , e); + log.error("Error searching {} with query: {}", database, query, e); return Collections.emptyList(); } } @@ -958,13 +958,13 @@ public void testParseCitation() assertEquals("Abbatiello SE, Mani DR. Mol Cell Proteomics. 2013 Sep;12(9):2623-39. PMID: 23689285; PMCID: PMC3769335.", parseCitation(json, "23689285", DB.PubMed)); // Missing nlm key - assertEquals(null, parseCitation("{\"ama\":{\"orig\":\"something\"}}", "23689285", DB.PubMed)); + assertNull(parseCitation("{\"ama\":{\"orig\":\"something\"}}", "23689285", DB.PubMed)); // Malformed JSON - assertEquals(null, parseCitation("not json", "23689285", DB.PubMed)); + assertNull(parseCitation("not json", "23689285", DB.PubMed)); // Empty nlm object (missing "orig" key) - assertEquals(null, parseCitation("{\"nlm\":{}}", "23689285", DB.PubMed)); + assertNull(parseCitation("{\"nlm\":{}}", "23689285", DB.PubMed)); } // -- isPreprint tests -- @@ -1345,14 +1345,14 @@ public void testApplyPriorityFiltering() PublicationMatch singleFieldMatch = createMatch("333", true, false, false, true, true, articleDate); result = applyPriorityFiltering(List.of(singleFieldMatch, multiFieldMatch), articleDate, LOG); assertEquals(1, result.size()); - assertEquals("222", result.get(0).getPublicationId()); + assertEquals("222", result.getFirst().getPublicationId()); // Among single-ID matches, author+title both matching preferred PublicationMatch bothMatch = createMatch("444", true, false, false, true, true, articleDate); PublicationMatch authorOnly = createMatch("555", true, false, false, true, false, articleDate); result = applyPriorityFiltering(List.of(authorOnly, bothMatch), articleDate, LOG); assertEquals(1, result.size()); - assertEquals("444", result.get(0).getPublicationId()); + assertEquals("444", result.getFirst().getPublicationId()); } @Test diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyExperimentFinalTask.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyExperimentFinalTask.java index 8a34dfea..5d4b6e18 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyExperimentFinalTask.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyExperimentFinalTask.java @@ -74,7 +74,6 @@ import org.labkey.panoramapublic.proteomexchange.ProteomeXchangeService; import org.labkey.panoramapublic.proteomexchange.ProteomeXchangeServiceException; import org.labkey.panoramapublic.query.CatalogEntryManager; -import org.labkey.panoramapublic.query.DatasetStatusManager; import org.labkey.panoramapublic.query.ExperimentAnnotationsManager; import org.labkey.panoramapublic.query.JournalManager; import org.labkey.panoramapublic.query.SubmissionManager; @@ -220,7 +219,7 @@ private void verifySymlinks(Container source, Container target, boolean matching if (null != targetRoot) { Path targetFileRoot = Path.of(targetRoot.toString(), File.separator); - PanoramaPublicSymlinkManager.get().handleContainerSymlinks(source, null, (sourceFile, targetFile, c, u) -> { + PanoramaPublicSymlinkManager.get().handleContainerSymlinks(source, null, (sourceFile, targetFile, _, _) -> { // valid path if (!FileUtil.isFileAndExists(targetFile)) @@ -315,7 +314,7 @@ private JournalSubmission updateSubmissionAndDeletePreviousCopy(JournalSubmissio } // Update the row in the Submission table -- set the 'copied' timestamp, copiedExperimentId - log.info("Updating Submission. Setting copiedExperimentId to " + targetExperiment.getId()); + log.info("Updating Submission. Setting copiedExperimentId to {}", targetExperiment.getId()); currentSubmission.setCopied(new Date()); currentSubmission.setCopiedExperimentId(targetExperiment.getId()); SubmissionManager.updateSubmission(currentSubmission, user); @@ -323,7 +322,7 @@ private JournalSubmission updateSubmissionAndDeletePreviousCopy(JournalSubmissio // Delete the previous copy if (previousCopy != null && jobSupport.deletePreviousCopy()) { - log.info("Deleting old folder " + previousCopy.getContainer().getPath()); + log.info("Deleting old folder {}", previousCopy.getContainer().getPath()); Container oldContainer = previousCopy.getContainer(); try { @@ -332,7 +331,7 @@ private JournalSubmission updateSubmissionAndDeletePreviousCopy(JournalSubmissio catch(Exception e) { // Log exception so that the admin doing the copy can review. - log.error("Error deleting previous copy of the data in folder " + oldContainer.getPath(), e); + log.error("Error deleting previous copy of the data in folder {}", oldContainer.getPath(), e); } } @@ -412,7 +411,7 @@ private void assignDoi(CopyExperimentJobSupport jobSupport, Logger log, Experime try { assignDoi(targetExperiment, jobSupport.useDataCiteTestApi()); - log.info("Assigned DOI: " + targetExperiment.getDoi()); + log.info("Assigned DOI: {}", targetExperiment.getDoi()); } catch(DataCiteException e) { @@ -441,7 +440,7 @@ private void assignPxId(CopyExperimentJobSupport jobSupport, Logger log, Experim try { assignPxId(targetExperiment, jobSupport.usePxTestDb()); - log.info("Assigned ProteomeXchange ID: " + targetExperiment.getPxid()); + log.info("Assigned ProteomeXchange ID: {}", targetExperiment.getPxid()); } catch(ProteomeXchangeServiceException e) { @@ -471,7 +470,7 @@ private ExperimentAnnotations getPreviousCopyRemoveShortUrl(Submission latestCop private ExperimentAnnotations updateExperimentAnnotations(Container targetContainer, ExperimentAnnotations sourceExperiment, JournalSubmission js, User user, Logger log) throws PipelineJobException { - log.info("Updating TargetedMS experiment entry in target folder " + targetContainer.getPath()); + log.info("Updating TargetedMS experiment entry in target folder {}", targetContainer.getPath()); ExperimentAnnotations targetExperiment = ExperimentAnnotationsManager.getExperimentInContainer(targetContainer); if (targetExperiment == null) { @@ -481,7 +480,7 @@ private ExperimentAnnotations updateExperimentAnnotations(Container targetContai targetExperiment.setShortUrl(js.getShortAccessUrl()); Integer currentVersion = ExperimentAnnotationsManager.getMaxVersionForExperiment(sourceExperiment.getId()); int version = currentVersion == null ? 1 : currentVersion + 1; - log.info("Setting version on new experiment to " + version); + log.info("Setting version on new experiment to {}", version); targetExperiment.setDataVersion(version); targetExperiment = ExperimentAnnotationsManager.save(targetExperiment, user); @@ -513,7 +512,7 @@ private void updatePermissions(User formSubmitter, ExperimentAnnotations targetE Journal journal, User pipelineJobUser, Logger log) { // Remove the copy permissions given to the journal. - log.info("Removing copy permissions given to " + journal.getName()); + log.info("Removing copy permissions given to {}", journal.getName()); Group journalGroup = SecurityManager.getGroup(journal.getLabkeyGroupId()); JournalManager.removeJournalPermissions(sourceExperiment, journalGroup, pipelineJobUser); @@ -539,7 +538,7 @@ private void updatePermissions(User formSubmitter, ExperimentAnnotations targetE MutableSecurityPolicy newPolicy = new MutableSecurityPolicy(target, target.getPolicy()); allReaders.stream().filter(Objects::nonNull).forEach(u -> { - log.info("Assigning " + ReaderRole.class.getSimpleName() + " to " + u.getEmail()); + log.info("Assigning {} to {}", ReaderRole.class.getSimpleName(), u.getEmail()); newPolicy.addRoleAssignment(u, ReaderRole.class); }); @@ -556,7 +555,7 @@ private void updatePermissions(User formSubmitter, ExperimentAnnotations targetE private void assignPanoramaPublicSubmitterRole(MutableSecurityPolicy policy, Logger log, User... users) { Arrays.stream(users).filter(Objects::nonNull).collect(Collectors.toSet()).forEach(user -> { - log.info("Assigning " + PanoramaPublicSubmitterRole.class.getSimpleName() + " to " + user.getEmail()); + log.info("Assigning {} to {}", PanoramaPublicSubmitterRole.class.getSimpleName(), user.getEmail()); policy.addRoleAssignment(user, PanoramaPublicSubmitterRole.class, false); }); } @@ -590,17 +589,17 @@ private void addToGroup(User user, Group group, Logger log) { if (SecurityManager.getGroupMembers(group, MemberType.ACTIVE_USERS).contains(user)) { - log.info("User " + user.getEmail() + " is already a member of group " + group.getName()); + log.info("User {} is already a member of group {}", user.getEmail(), group.getName()); } else { - log.info("Adding user " + user.getEmail() + " to group " + group.getName()); + log.info("Adding user {} to group {}", user.getEmail(), group.getName()); SecurityManager.addMember(group, user); } } catch (InvalidGroupMembershipException e) { - log.warn("Unable to add user " + user.getEmail() + " to group " + group.getName(), e); + log.warn("Unable to add user {} to group {}", user.getEmail(), group.getName(), e); } } @@ -614,7 +613,7 @@ private Group getGroup(String groupName, Container project, Logger log) } if (group == null) { - log.warn("Did not find a security group with name " + groupName + " in the project " + project.getName()); + log.warn("Did not find a security group with name {} in the project {}", groupName, project.getName()); } return group; } @@ -648,7 +647,7 @@ private ReviewerAndPassword createReviewerAccount(String reviewerEmailPrefix, Us log.info("Creating a reviewer account."); SecurityManager.NewUserStatus newUser = SecurityManager.addUser(email, user, true); - log.info("Created reviewer with email: " + newUser.getUser().getEmail()); + log.info("Created reviewer with email: {}", newUser.getUser().getEmail()); log.info("Generating password."); String password = createPassword(newUser.getUser()); @@ -818,7 +817,7 @@ private void updateLastCopiedExperiment(ExperimentAnnotations previousCopy, Jour // Append a version to the original short URL String versionedShortUrl = js.getShortAccessUrl().getShortURL() + "_v" + previousCopy.getDataVersion(); - log.info("Creating a new versioned URL for the previous copy of the data: " + versionedShortUrl); + log.info("Creating a new versioned URL for the previous copy of the data: {}", versionedShortUrl); ShortURLService shortUrlService = ShortURLService.get(); ShortURLRecord shortURLRecord = shortUrlService.resolveShortURL(versionedShortUrl); if (shortURLRecord != null) @@ -837,7 +836,7 @@ private void updateLastCopiedExperiment(ExperimentAnnotations previousCopy, Jour throw new PipelineJobException("Error saving shortUrl '" + versionedShortUrl + "'", e); } - log.info("Setting the permanent link on the previous copy to " + newShortUrl.getShortURL()); + log.info("Setting the permanent link on the previous copy to {}", newShortUrl.getShortURL()); previousCopy.setShortUrl(newShortUrl); ExperimentAnnotationsManager.save(previousCopy, user); @@ -851,7 +850,7 @@ public Factory() } @Override - public PipelineJob.Task createTask(PipelineJob job) + public CopyExperimentFinalTask createTask(PipelineJob job) { return new CopyExperimentFinalTask(this, job); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyLibraryStateTask.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyLibraryStateTask.java index c87d0425..0d966ef5 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyLibraryStateTask.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/CopyLibraryStateTask.java @@ -71,7 +71,7 @@ else if (experiments.size() > 1) { throw new PipelineJobException(String.format("More than one experiment found in the container '%s'.", container.getPath())); } - ExpExperiment experiment = experiments.get(0); + ExpExperiment experiment = experiments.getFirst(); ExperimentAnnotations sourceExperiment = jobSupport.getExpAnnotations(); Logger log = job.getLogger(); @@ -105,10 +105,7 @@ private void doUpdate(Container c, Container sourceContainer, User user, Targete FolderType folderType = svc.getFolderType(sourceContainer); if (LibraryProtein.equals(folderType) || Library.equals(folderType)) { - log.info(String.format("Copying '%s' state from source folder '%s' into target folder '%s' .", - (LibraryProtein.equals(folderType) ? "Protein Library" : "Peptide Library"), - sourceContainer.getPath(), - c.getPath())); + log.info("Copying '{}' state from source folder '{}' into target folder '{}' .", (LibraryProtein.equals(folderType) ? "Protein Library" : "Peptide Library"), sourceContainer.getPath(), c.getPath()); copyLibraryState(c, sourceContainer, user, svc, log); } } @@ -120,7 +117,7 @@ private static void copyLibraryState(Container container, Container sourceContai String versionStr = sourcePropMap.get(TargetedMSService.PROP_CHROM_LIB_REVISION); if (null != versionStr) { - log.info(String.format("Setting the value of property '%s' to '%s'.", TargetedMSService.PROP_CHROM_LIB_REVISION, versionStr)); + log.info("Setting the value of property '{}' to '{}'.", TargetedMSService.PROP_CHROM_LIB_REVISION, versionStr); WritablePropertyMap targetPropMap = PropertyManager.getWritableProperties(container, TargetedMSService.MODULE_NAME, true); targetPropMap.put(TargetedMSService.PROP_CHROM_LIB_REVISION, versionStr); targetPropMap.save(); diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/ExperimentImportTask.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/ExperimentImportTask.java index b3f8330a..cbb977ec 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/ExperimentImportTask.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/ExperimentImportTask.java @@ -31,7 +31,6 @@ import org.labkey.api.writer.VirtualFile; import org.labkey.vfs.FileLike; -import java.io.File; import java.util.Collections; import java.util.List; diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataImporter.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataImporter.java index 40786375..9d84ae83 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataImporter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataImporter.java @@ -55,20 +55,20 @@ private void doImport(Container container, boolean includeSubfolders, VirtualFil private void readXmlAndImport(Container container, VirtualFile vf, FileContentService fcs, ExperimentService expSvc, User user, Logger log) throws PipelineJobException { - log.debug(String.format("[%s] Reading files metadata from %s", container.getPath(), vf.getLocation())); + log.debug("[{}] Reading files metadata from {}", container.getPath(), vf.getLocation()); try (InputStream is = vf.getInputStream(FilesMetadataWriter.FILENAME)) { if (is == null) { - log.error(String.format("Could not find expected file %s in %s.", FilesMetadataWriter.FILENAME, vf.getLocation())); + log.error("Could not find expected file {} in {}.", FilesMetadataWriter.FILENAME, vf.getLocation()); return; } Path fileRoot = fcs.getFileRootPath(container, FileContentService.ContentType.files); if (fileRoot == null) { - log.error("Could not get file root for " + container.getPath()); + log.error("Could not get file root for {}", container.getPath()); return; } @@ -93,7 +93,7 @@ private void readXmlAndImport(Container container, VirtualFile vf, FileContentSe } catch (ValidationException validationErrors) { - log.error("Error setting comment on " + data.getFilePath(), validationErrors); + log.error("Error setting comment on {}", data.getFilePath(), validationErrors); } } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataWriter.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataWriter.java index 3c99d0cf..26d4a73c 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataWriter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/FilesMetadataWriter.java @@ -49,7 +49,7 @@ public void write(Container container, boolean includeSubfolders, FileSystemFile private void writeFilesMetadata(VirtualFile vf, Container container, boolean includeSubfolders, ExperimentService expSvc, FileContentService fcs, User user, Logger log) throws PipelineJobException { - log.debug(String.format("[%s] Writing files metadata to %s", container.getPath(), vf.getLocation())); + log.debug("[{}] Writing files metadata to {}", container.getPath(), vf.getLocation()); try (PrintWriter writer = vf.getPrintWriter(FILENAME)) { @@ -83,7 +83,7 @@ private void writeFilesXml(Container container, ExperimentService expSvc, FileCo Path fileRoot = fcs.getFileRootPath(container, FileContentService.ContentType.files); if (fileRoot == null) { - log.error("Could not get file root for " + container.getPath()); + log.error("Could not get file root for {}", container.getPath()); return; } diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PostPanoramaPublicMessageJob.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PostPanoramaPublicMessageJob.java index c0b6b287..cc86e848 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PostPanoramaPublicMessageJob.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PostPanoramaPublicMessageJob.java @@ -69,7 +69,7 @@ public void run() private void postMessage() { - getLogger().info(String.format("%sPosting to: %d message threads", _test ? "TEST MODE: " : "", _experimentAnnotationsIds.size())); + getLogger().info("{}Posting to: {} message threads", _test ? "TEST MODE: " : "", _experimentAnnotationsIds.size()); int done = 0; @@ -90,14 +90,14 @@ private void postMessage() ExperimentAnnotations expAnnotations = ExperimentAnnotationsManager.get(experimentAnnotationsId); if (expAnnotations == null) { - getLogger().error("Could not find an experiment with Id: " + experimentAnnotationsId); + getLogger().error("Could not find an experiment with Id: {}", experimentAnnotationsId); experimentNotFound.add(experimentAnnotationsId); continue; } JournalSubmission submission = SubmissionManager.getSubmissionForExperiment(expAnnotations); if (submission == null || submission.getLatestSubmission() == null) { - getLogger().error("Could not find a submission request for experiment Id: " + experimentAnnotationsId); + getLogger().error("Could not find a submission request for experiment Id: {}", experimentAnnotationsId); submissionNotFound.add(experimentAnnotationsId); continue; } @@ -106,8 +106,7 @@ private void postMessage() if (announcement == null) { - getLogger().error("Could not find the message thread for experiment Id: " + experimentAnnotationsId - + "; announcement Id: " + submission.getAnnouncementId() + " in the folder " + announcementsContainer.getPath()); + getLogger().error("Could not find the message thread for experiment Id: {}; announcement Id: {} in the folder {}", experimentAnnotationsId, submission.getAnnouncementId(), announcementsContainer.getPath()); announcementNotFound.add(experimentAnnotationsId); continue; } @@ -115,7 +114,7 @@ private void postMessage() User submitter = expAnnotations.getSubmitterUser(); if (submitter == null) { - getLogger().error("Could not find a submitter user for experiment Id: " + experimentAnnotationsId); + getLogger().error("Could not find a submitter user for experiment Id: {}", experimentAnnotationsId); submitterNotFound.add(experimentAnnotationsId); continue; } @@ -136,8 +135,7 @@ private void postMessage() } done++; - getLogger().info(String.format("%s to message thread for experiment Id %d, announcement Id %d. Done: %d", - _test ? "Would post" : "Posted", experimentAnnotationsId, announcement.getRowId(), done)); + getLogger().info("{} to message thread for experiment Id {}, announcement Id {}. Done: {}", _test ? "Would post" : "Posted", experimentAnnotationsId, announcement.getRowId(), done); } transaction.commit(); @@ -145,19 +143,19 @@ private void postMessage() if (!experimentNotFound.isEmpty()) { - getLogger().error("Experiments with the following Ids could not be found: " + StringUtils.join(experimentNotFound, ", ")); + getLogger().error("Experiments with the following Ids could not be found: {}", StringUtils.join(experimentNotFound, ", ")); } if (!submissionNotFound.isEmpty()) { - getLogger().error("Submission requests were not found for the following experiment Ids: " + StringUtils.join(submissionNotFound, ", ")); + getLogger().error("Submission requests were not found for the following experiment Ids: {}", StringUtils.join(submissionNotFound, ", ")); } if (!announcementNotFound.isEmpty()) { - getLogger().error("Support message threads were not found for the following experiment Ids: " + StringUtils.join(announcementNotFound, ", ")); + getLogger().error("Support message threads were not found for the following experiment Ids: {}", StringUtils.join(announcementNotFound, ", ")); } if (!submitterNotFound.isEmpty()) { - getLogger().error("Submitter user was not found for the following experiment Ids: " + StringUtils.join(submissionNotFound, ", ")); + getLogger().error("Submitter user was not found for the following experiment Ids: {}", StringUtils.join(submissionNotFound, ", ")); } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PrivateDataReminderJob.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PrivateDataReminderJob.java index 893d1eb5..e236b32c 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PrivateDataReminderJob.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PrivateDataReminderJob.java @@ -205,22 +205,19 @@ private PublicationMatch searchForPublication(@NotNull ExperimentAnnotations exp { if (settings.isPublicationDismissalRecent(datasetStatus)) { - log.info(String.format("User dismissed publication for experiment %d on %s; Publication search deferred (%d months)", - expAnnotations.getId(), dismissedDate, settings.getPublicationSearchFrequency())); + log.info("User dismissed publication for experiment {} on {}; Publication search deferred ({} months)", expAnnotations.getId(), dismissedDate, settings.getPublicationSearchFrequency()); return null; } // Search deferral expired — re-search NCBI - log.info(String.format("Search deferral expired for experiment %d (dismissed %s); re-searching NCBI", - expAnnotations.getId(), dismissedDate)); + log.info("Search deferral expired for experiment {} (dismissed {}); re-searching NCBI", expAnnotations.getId(), dismissedDate); try { PublicationMatch newMatch = NcbiPublicationSearchService.get().searchForPublication(expAnnotations, log); if (newMatch != null && !newMatch.getPublicationId().equals(datasetStatus.getPotentialPublicationId())) { // Different publication found — return it (caller will save and notify) - log.info(String.format("New publication %s found for experiment %d (previously dismissed %s)", - newMatch.getPublicationId(), expAnnotations.getId(), datasetStatus.getPotentialPublicationId())); + log.info("New publication {} found for experiment {} (previously dismissed {})", newMatch.getPublicationId(), expAnnotations.getId(), datasetStatus.getPotentialPublicationId()); return newMatch; } else @@ -228,12 +225,11 @@ private PublicationMatch searchForPublication(@NotNull ExperimentAnnotations exp // Same publication or nothing found — update dismissal date to restart search deferral if (testMode) { - log.info(String.format("TEST MODE: No new publication for experiment %d; Would reset search deferral", expAnnotations.getId())); + log.info("TEST MODE: No new publication for experiment {}; Would reset search deferral", expAnnotations.getId()); } else { - log.info(String.format("No new publication for experiment %d; resetting search deferral", - expAnnotations.getId())); + log.info("No new publication for experiment {}; resetting search deferral", expAnnotations.getId()); datasetStatus.setUserDismissedPublication(new Date()); DatasetStatusManager.update(datasetStatus, user); } @@ -242,8 +238,7 @@ private PublicationMatch searchForPublication(@NotNull ExperimentAnnotations exp } catch (Exception e) { - log.error(String.format("Error re-searching publication for experiment %d: %s", - expAnnotations.getId(), e.getMessage()), e); + log.error("Error re-searching publication for experiment {}: {}", expAnnotations.getId(), e.getMessage(), e); return null; } } @@ -251,22 +246,20 @@ private PublicationMatch searchForPublication(@NotNull ExperimentAnnotations exp // If we already have a cached publication ID, use it if (!StringUtils.isBlank(datasetStatus.getPotentialPublicationId())) { - log.info(String.format("Using cached publication %s %s for experiment %d", - datasetStatus.getPublicationType(), datasetStatus.getPotentialPublicationId(), expAnnotations.getId())); + log.info("Using cached publication {} {} for experiment {}", datasetStatus.getPublicationType(), datasetStatus.getPotentialPublicationId(), expAnnotations.getId()); return PublicationMatch.fromDatasetStatus(datasetStatus); } } // Perform the publication search - log.info(String.format("Searching for publications for experiment %d", expAnnotations.getId())); + log.info("Searching for publications for experiment {}", expAnnotations.getId()); try { return NcbiPublicationSearchService.get().searchForPublication(expAnnotations, log); } catch (Exception e) { - log.error(String.format("Error searching for publication for experiment %d: %s", - expAnnotations.getId(), e.getMessage()), e); + log.error("Error searching for publication for experiment {}: {}", expAnnotations.getId(), e.getMessage(), e); return null; } } @@ -311,7 +304,7 @@ private void postMessage(List expAnnotationIds, Journal panoramaPublic) private void processExperiments(List expAnnotationIds, ProcessingContext context, ProcessingResults processingResults, Logger log) { - log.info(String.format("Posting reminder message to: %d message threads.", expAnnotationIds.size())); + log.info("Posting reminder message to: {} message threads.", expAnnotationIds.size()); Set exptIds = new HashSet<>(expAnnotationIds); if (_test) @@ -327,7 +320,7 @@ private void processExperiments(List expAnnotationIds, ProcessingContex } catch (Exception e) { - log.error(String.format("Error processing experiment %d: %s", experimentAnnotationsId, e.getMessage()), e); + log.error("Error processing experiment {}: {}", experimentAnnotationsId, e.getMessage(), e); } } @@ -668,46 +661,44 @@ public ProcessingResults(int totalExperiments, Logger log) public void addExperimentNotFound(Integer experimentId) { _experimentNotFound.add(experimentId); - _log.error(String.format("Could not find an experiment with Id: %s.", experimentId)); + _log.error("Could not find an experiment with Id: {}.", experimentId); } public void addSubmissionNotFound(Integer experimentId) { _submissionNotFound.add(experimentId); - _log.error(String.format("Could not find a submission request for experiment Id: %s.", experimentId)); + _log.error("Could not find a submission request for experiment Id: {}.", experimentId); } public void addLatestSubmissionNotFound(Integer experimentId) { _submissionNotFound.add(experimentId); - _log.error(String.format("Submission found but latest submission is null for experiment Id: %s.", experimentId)); + _log.error("Submission found but latest submission is null for experiment Id: {}.", experimentId); } public void addAnnouncementNotFound(Integer experimentId, JournalSubmission submission, Container announcementsFolder) { _announcementNotFound.add(experimentId); - _log.error(String.format("Could not find the message thread for experiment Id: %s; announcement Id: %s in the folder %s.", - experimentId, submission.getAnnouncementId(), announcementsFolder.getPath())); + _log.error("Could not find the message thread for experiment Id: {}; announcement Id: {} in the folder {}.", experimentId, submission.getAnnouncementId(), announcementsFolder.getPath()); } public void addSubmitterNotFound(Integer experimentId) { _submitterNotFound.add(experimentId); - _log.error(String.format("Could not find a submitter user for experiment Id: %s.", experimentId)); + _log.error("Could not find a submitter user for experiment Id: {}.", experimentId); } public void addSkipped(Integer experimentId, ReminderDecision decision) { _skipped.add(experimentId); - _log.info(String.format("Skipping reminder for experiment Id %s - %s.", experimentId, decision.getReason())); + _log.info("Skipping reminder for experiment Id {} - {}.", experimentId, decision.getReason()); } public void addProcessed(ExperimentAnnotations expAnnotations, Announcement announcement) { _processed++; - _log.info(String.format("Experiment ID: %d; Announcement ID %d; Short URL: %s.", - expAnnotations.getId(), announcement.getRowId(), expAnnotations.getShortUrl().renderShortURL())); - _log.info(String.format("Folder: %s", PageFlowUtil.urlProvider(ProjectUrls.class).getBeginURL(expAnnotations.getContainer()).getURIString())); - _log.info(String.format("Completed: %d of %d", _processed, _total)); + _log.info("Experiment ID: {}; Announcement ID {}; Short URL: {}.", expAnnotations.getId(), announcement.getRowId(), expAnnotations.getShortUrl().renderShortURL()); + _log.info("Folder: {}", PageFlowUtil.urlProvider(ProjectUrls.class).getBeginURL(expAnnotations.getContainer()).getURIString()); + _log.info("Completed: {} of {}", _processed, _total); } public void logResults(Logger log) @@ -720,32 +711,27 @@ public void logSkipped(Logger log) { if (!_experimentNotFound.isEmpty()) { - log.error("Experiments with the following Ids could not be found: " + - StringUtils.join(_experimentNotFound, ", ")); + log.error("Experiments with the following Ids could not be found: {}", StringUtils.join(_experimentNotFound, ", ")); } if (!_submissionNotFound.isEmpty()) { - log.error("Submission requests were not found for the following experiment Ids: " + - StringUtils.join(_submissionNotFound, ", ")); + log.error("Submission requests were not found for the following experiment Ids: {}", StringUtils.join(_submissionNotFound, ", ")); } if (!_announcementNotFound.isEmpty()) { - log.error("Support message threads were not found for the following experiment Ids: " + - StringUtils.join(_announcementNotFound, ", ")); + log.error("Support message threads were not found for the following experiment Ids: {}", StringUtils.join(_announcementNotFound, ", ")); } if (!_submitterNotFound.isEmpty()) { - log.error("Submitter user was not found for the following experiment Ids: " + - StringUtils.join(_submitterNotFound, ", ")); + log.error("Submitter user was not found for the following experiment Ids: {}", StringUtils.join(_submitterNotFound, ", ")); } if (!_skipped.isEmpty()) { - log.info("The following experiments were skipped: " + - StringUtils.join(_skipped, ", ")); + log.info("The following experiments were skipped: {}", StringUtils.join(_skipped, ", ")); } } @@ -760,16 +746,15 @@ public void logSummary(Logger log) { if (!_skipped.isEmpty()) { - log.info(String.format("Skipped posting reminders for %s.", StringUtilsLabKey.pluralize(_skipped.size(), "experiment"))); + log.info("Skipped posting reminders for {}.", StringUtilsLabKey.pluralize(_skipped.size(), "experiment")); } if (_processed > 0) { - log.info(String.format("Successfully processed %s.", StringUtilsLabKey.pluralize(_processed, "experiment"))); + log.info("Successfully processed {}.", StringUtilsLabKey.pluralize(_processed, "experiment")); } - log.info(String.format("Processing complete: %d total, %d processed, %d skipped, %d errors", - _total, _processed, _skipped.size(), getTotalErrors())); + log.info("Processing complete: {} total, {} processed, {} skipped, {} errors", _total, _processed, _skipped.size(), getTotalErrors()); } } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PxDataValidationTask.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PxDataValidationTask.java index 2434f490..a7c2e5d2 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/PxDataValidationTask.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/PxDataValidationTask.java @@ -49,7 +49,7 @@ public void doValidation(PipelineJob job, PxDataValidationJobSupport jobSupport) throw new PipelineJobException(String.format("Could not find a data validation row for Id %d in folder '%s'.", jobSupport.getValidationId(), exptAnnotations.getContainer().getPath())); } - log.info(String.format("Validating data for experiment Id: %d, validation Id: %d", exptAnnotations.getId(), validation.getId())); + log.info("Validating data for experiment Id: {}, validation Id: {}", exptAnnotations.getId(), validation.getId()); Long pipelineJobId = (PipelineService.get().getJobId(job.getUser(), job.getContainer(), job.getJobGUID())); if (pipelineJobId != null && pipelineJobId != validation.getJobId()) { @@ -63,7 +63,7 @@ public void doValidation(PipelineJob job, PxDataValidationJobSupport jobSupport) DataValidator validator = new DataValidator(exptAnnotations, validation, listener); ValidatorStatus status = validator.validateExperiment(job.getUser()); - log.info("Data validation is complete. Status is " + status.getValidation().getStatus()); + log.info("Data validation is complete. Status is {}", status.getValidation().getStatus()); } catch (CancelledException e) { diff --git a/panoramapublic/src/org/labkey/panoramapublic/pipeline/ValidatorListener.java b/panoramapublic/src/org/labkey/panoramapublic/pipeline/ValidatorListener.java index 4b0c0a31..2019ef1a 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/pipeline/ValidatorListener.java +++ b/panoramapublic/src/org/labkey/panoramapublic/pipeline/ValidatorListener.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; public class ValidatorListener implements DataValidatorListener @@ -28,9 +29,8 @@ public ValidatorListener(PipelineJob job) public void started(ValidatorStatus status) { _job.setStatus("Starting data validation"); - _log.info(String.format("Validating data for %d Skyline documents in %d folders", status.getSkylineDocs().size(), - status.getSkylineDocs().stream().filter(doc -> doc.getRunContainer() != null) - .map(SkylineDocValidator::getRunContainer).distinct().count())); + _log.info("Validating data for {} Skyline documents in {} folders", status.getSkylineDocs().size(), status.getSkylineDocs().stream().map(SkylineDocValidator::getRunContainer) + .filter(Objects::nonNull).distinct().count()); } @Override @@ -42,7 +42,7 @@ public void validatingDocument(SkylineDocValidator document) @Override public void sampleFilesValidated(SkylineDocValidator document) { - _log.info("Sample file validation for Skyline document: " + document.getName()); + _log.info("Sample file validation for Skyline document: {}", document.getName()); if (document.foundAllSampleFiles()) { _log.info(" Found all sample files."); @@ -50,7 +50,7 @@ public void sampleFilesValidated(SkylineDocValidator document) else { _log.info(" MISSING SAMPLE FILES:"); - document.getMissingSampleFileNames().stream().forEach(name -> _log.info(" " + name)); + document.getMissingSampleFileNames().stream().forEach(name -> _log.info(" {}", name)); } } @@ -86,13 +86,13 @@ public void modificationsValidated(ValidatorStatus status) private void logModInfo(ValidatorStatus status, Modification mod) { - _log.info(mod.getId() + ": " + mod); + _log.info("{}: {}", mod.getId(), mod); for (SkylineDocModification docMod: mod.getDocsWithModification()) { SkylineDocValidator doc = status.getSkylineDocForId(docMod.getSkylineDocValidationId()); if (doc != null) { - _log.info(" " + doc.getName()); + _log.info(" {}", doc.getName()); } } } @@ -120,11 +120,11 @@ public void spectralLibraryValidated(SpecLibValidator specLib) _log.info(" MISSING FILES:"); for (String name : specLib.getMissingSpectrumFileNames()) { - _log.info(" Spectrum File: " + name); + _log.info(" Spectrum File: {}", name); } for (String name : specLib.getMissingIdFileNames()) { - _log.info(" Peptide Id File: " + name); + _log.info(" Peptide Id File: {}", name); } } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ExperimentModificationGetter.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ExperimentModificationGetter.java index 19253a17..0e3343e9 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ExperimentModificationGetter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ExperimentModificationGetter.java @@ -128,7 +128,7 @@ private static void addMatches(IModification mod, UnimodModifications uMods, PxM { // If there was only one match for the modification formula and modification sites / terminus then assume // that this is the right match. - pxMod.setUnimodMatch(uModList.get(0), true); + pxMod.setUnimodMatch(uModList.getFirst(), true); } else { @@ -712,8 +712,8 @@ public void testStructuralMods() throws IOException else if (matches.size() == 1) { assertTrue("Expected a Unimod Id for modification " + pxMod.getSkylineName(), pxMod.hasUnimodId()); - assertEquals("Unexpected Unimod match Id for modification " + pxMod.getSkylineName(), matches.get(0).getId(), pxMod.getUnimodIdInt().intValue()); - assertEquals("Unexpected Unimod match name for modification " + pxMod.getSkylineName(), matches.get(0).getName(), pxMod.getName()); + assertEquals("Unexpected Unimod match Id for modification " + pxMod.getSkylineName(), matches.getFirst().getId(), pxMod.getUnimodIdInt().intValue()); + assertEquals("Unexpected Unimod match name for modification " + pxMod.getSkylineName(), matches.getFirst().getName(), pxMod.getName()); assertFalse("modification " + pxMod.getSkylineName() + " has a Unimod Id." + " Unexpected " + pxMod.getPossibleUnimodMatches().size() + " possible matches", pxMod.hasPossibleUnimods()); } @@ -911,8 +911,8 @@ public void testIsotopicMods() throws IOException else if (expectedMatches.size() == 1) { assertTrue("Expected a Unimod Id for isotopic modification " + pxMod.getSkylineName(), pxMod.hasUnimodId()); - assertEquals("Unexpected Unimod match Id for isotopic modification " + pxMod.getSkylineName(), expectedMatches.get(0).getId(), pxMod.getUnimodIdInt().intValue()); - assertEquals("Unexpected Unimod match name for isotopic modification " + pxMod.getSkylineName(), expectedMatches.get(0).getName(), pxMod.getName()); + assertEquals("Unexpected Unimod match Id for isotopic modification " + pxMod.getSkylineName(), expectedMatches.getFirst().getId(), pxMod.getUnimodIdInt().intValue()); + assertEquals("Unexpected Unimod match name for isotopic modification " + pxMod.getSkylineName(), expectedMatches.getFirst().getName(), pxMod.getName()); assertFalse("Isotopic modification " + pxMod.getSkylineName() + " has a Unimod Id." + " Unexpected " + pxMod.getPossibleUnimodMatches().size() + " possible matches", pxMod.hasPossibleUnimods()); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/Formula.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/Formula.java index 7b994b56..4f83bf36 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/Formula.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/Formula.java @@ -254,13 +254,13 @@ public void testFormula() formula = Formula.tryParse(input, errors); // More than one subtraction operation is not supported assertNull(formula); assertEquals(1, errors.size()); - assertEquals("Failed to parse formula '" + input + "'. More than one subtraction operation is not supported in a formula.", errors.get(0)); + assertEquals("Failed to parse formula '" + input + "'. More than one subtraction operation is not supported in a formula.", errors.getFirst()); errors = new ArrayList<>(); input = C12H8S2O6 + 'X' + SO4; formula = Formula.tryParse(input, errors); // Unrecognized element in formula assertNull(formula); - assertEquals("Failed to parse formula '" + input + "'. Unrecognized element in formula: X", errors.get(0)); + assertEquals("Failed to parse formula '" + input + "'. Unrecognized element in formula: X", errors.getFirst()); // Check our ability to handle strangely constructed chemical formulas (from MassCalcTest.TestGetIonFormula() in Skyline) diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ProteomeXchangeService.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ProteomeXchangeService.java index b11c9b95..8b945294 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ProteomeXchangeService.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/ProteomeXchangeService.java @@ -16,7 +16,6 @@ package org.labkey.panoramapublic.proteomexchange; import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.apache.hc.client5.http.entity.mime.FileBody; import org.apache.hc.client5.http.entity.mime.InputStreamBody; import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; @@ -32,7 +31,6 @@ import org.labkey.api.util.logging.LogHelper; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -167,7 +165,7 @@ private static String postRequest(MultipartEntityBuilder builder) throws IOExcep int statusCode = response.getCode(); if (statusCode != 200) { - LOG.error("Unsuccessful request to ProteomeXchange. Status code: " + statusCode + "; Response: " + responseMessage); + LOG.error("Unsuccessful request to ProteomeXchange. Status code: {}; Response: {}", statusCode, responseMessage); throw new ProteomeXchangeServiceException("Error " + statusCode + " from ProteomeXchange server: " + responseMessage); } return responseMessage; diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxHtmlWriter.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxHtmlWriter.java index f1248390..636acd76 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxHtmlWriter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxHtmlWriter.java @@ -31,7 +31,6 @@ import java.util.ArrayList; import java.util.Comparator; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxWriter.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxWriter.java index a010e193..27db1b22 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxWriter.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/PxWriter.java @@ -74,7 +74,7 @@ Map getScientificNames(List taxIds) throws PxException abstract void begin(ExperimentAnnotations experimentAnnotations) throws PxException; abstract void end() throws PxException; - abstract void close() throws PxException; + abstract void close(); abstract void writeChangeLog(String pxChangeLog) throws PxException; abstract void writeDatasetSummary(ExperimentAnnotations expAnnotations, Submission submission, Status validationStatus) throws PxException; abstract void writeDatasetIdentifierList(String pxId, int version, ShortURLRecord accessUrl) throws PxException; diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/UnimodUtil.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/UnimodUtil.java index 76b0fd34..ed06178f 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/UnimodUtil.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/UnimodUtil.java @@ -121,7 +121,7 @@ private static UnimodModifications readUnimodMods() var modsList = getUnimod().getByFormula(buildIsotopeModFormula(skylineMod)); if (modsList.size() == 1) { - return modsList.get(0); + return modsList.getFirst(); } } return null; diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/DataValidator.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/DataValidator.java index 7f797aa3..2e887b47 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/DataValidator.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/DataValidator.java @@ -196,8 +196,8 @@ private ExperimentModInfo saveModInfoForWildCardSkylineMod(ExperimentModificatio var modInfo = new ExperimentIsotopeModInfo(); modInfo.setExperimentAnnotationsId(expAnnotations.getId()); modInfo.setModId(pxMod.getDbModId()); - modInfo.setUnimodId(uModsList.get(0).getId()); - modInfo.setUnimodName(uModsList.get(0).getName()); + modInfo.setUnimodId(uModsList.getFirst().getId()); + modInfo.setUnimodName(uModsList.getFirst().getName()); for (int i = 1; i < uModsList.size(); i++) { var uMod = uModsList.get(i); diff --git a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/SkylineDocValidator.java b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/SkylineDocValidator.java index 96bf5534..ed743129 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/SkylineDocValidator.java +++ b/panoramapublic/src/org/labkey/panoramapublic/proteomexchange/validator/SkylineDocValidator.java @@ -60,7 +60,7 @@ public Container getRunContainer() } @Override - public List getSampleFiles() + public @NotNull List getSampleFiles() { return Collections.unmodifiableList(_sampleFiles); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ContainerJoin.java b/panoramapublic/src/org/labkey/panoramapublic/query/ContainerJoin.java index 7d3935f4..72a8a0c9 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/ContainerJoin.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/ContainerJoin.java @@ -86,7 +86,7 @@ public ContainerJoin addJoin(@NotNull String joinCol, @NotNull TableInfo table, private String getLastJoinTableAlias() { - return _joinList.get(_joinList.size() - 1).getJoinTableAlias(); + return _joinList.getLast().getJoinTableAlias(); } public @Nullable FieldKey getContainerFieldKey() diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationManager.java b/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationManager.java index 5618547b..746cf901 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationManager.java @@ -748,7 +748,7 @@ private static void validateInstruments(ExperimentAnnotations expAnnot, MissingM catch (PxException e) { errors.add("Error reading psi-ms file for validating instruments. " + e.getMessage()); - log.error("Error reading psi-ms file for validating instruments in container " + expAnnot.getContainer(), e); + log.error("Error reading psi-ms file for validating instruments in container {}", expAnnot.getContainer(), e); } if(instrument == null) diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationTableInfo.java index 08eb8a84..243fa62f 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationTableInfo.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/DataValidationTableInfo.java @@ -16,7 +16,6 @@ import org.labkey.api.query.QueryForeignKey; import org.labkey.api.query.QueryUpdateService; import org.labkey.api.query.RowIdQueryUpdateService; -import org.labkey.api.query.ValidationException; import org.labkey.api.security.User; import org.labkey.api.security.UserPrincipal; import org.labkey.api.security.permissions.Permission; @@ -148,13 +147,13 @@ public void delete(User user, Container container, int key) } @Override - protected DataValidation insert(User user, Container container, DataValidation bean) throws ValidationException + protected DataValidation insert(User user, Container container, DataValidation bean) { throw new UnsupportedOperationException(); } @Override - protected DataValidation update(User user, Container container, DataValidation bean, Integer oldKey) throws ValidationException + protected DataValidation update(User user, Container container, DataValidation bean, Integer oldKey) { throw new UnsupportedOperationException(); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/DatasetStatusTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/DatasetStatusTableInfo.java index e0413edd..0530c0bf 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/DatasetStatusTableInfo.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/DatasetStatusTableInfo.java @@ -2,14 +2,9 @@ import org.jetbrains.annotations.NotNull; import org.labkey.api.data.ContainerFilter; -import org.labkey.api.data.JdbcType; -import org.labkey.api.data.SQLFragment; -import org.labkey.api.query.ExprColumn; import org.labkey.api.query.FieldKey; -import org.labkey.api.query.QueryForeignKey; import org.labkey.panoramapublic.PanoramaPublicManager; import org.labkey.panoramapublic.PanoramaPublicSchema; -import org.labkey.panoramapublic.view.publish.ShortUrlDisplayColumnFactory; import java.util.ArrayList; import java.util.List; diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsManager.java b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsManager.java index f063fe35..7cfcbb89 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsManager.java @@ -369,7 +369,7 @@ public static ExperimentAnnotations getExperimentInContainer(Container container // Return the first experiment in the container. // We are now enforcing a single experiment per container, but there may already be // containers with multiple experiments. - return expAnnotations.get(0); + return expAnnotations.getFirst(); } return null; } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java index ae427a7f..d396f2e8 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentAnnotationsTableInfo.java @@ -478,7 +478,7 @@ public String renderURL(RenderContext ctx) List journals = JournalManager.getJournalsForExperiment(submittedExperimentId != null ? submittedExperimentId : experimentAnnotationsId); if (!journals.isEmpty()) { - ActionURL url = new ActionURL("announcements", "thread", journals.get(0).getSupportContainer()) + ActionURL url = new ActionURL("announcements", "thread", journals.getFirst().getSupportContainer()) .addParameter("rowId", announcementId); return url.getEncodedLocalURIString(); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentTitleDisplayColumn.java b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentTitleDisplayColumn.java index 7764f5f6..e3bc563b 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentTitleDisplayColumn.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/ExperimentTitleDisplayColumn.java @@ -138,7 +138,7 @@ public void customize(TableInfo tableInfo) { ((FilteredTable)tableInfo).addColumn(col); List displayCols = new ArrayList<>(tableInfo.getDefaultVisibleColumns()); - displayCols.add(0, getFieldKey()); + displayCols.addFirst(getFieldKey()); tableInfo.setDefaultVisibleColumns(displayCols); } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/JournalManager.java b/panoramapublic/src/org/labkey/panoramapublic/query/JournalManager.java index 3f4f6f03..56aa1906 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/JournalManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/JournalManager.java @@ -182,7 +182,7 @@ public static boolean journalHasAccess(Journal journal, ExperimentAnnotations ex return (journalId != null); } - public static void setupJournalAccess(ExperimentAnnotations exptAnnotations, Journal journal, User user) throws ValidationException + public static void setupJournalAccess(ExperimentAnnotations exptAnnotations, Journal journal, User user) { Group journalGroup = org.labkey.api.security.SecurityManager.getGroup(journal.getLabkeyGroupId()); @@ -327,11 +327,11 @@ static void tryDeleteShortUrl(ShortURLRecord shortUrl, User user) // delete the Panorama Public project if it still contains an experiment. catch(UnauthorizedException e) { - LOG.info("User " + user.getEmail() + " (" + user.getUserId() + ") is not authorized to delete the shortUrl: " + shortUrl.getShortURL() + ". Error was: " + e.getMessage()); + LOG.info("User {} ({}) is not authorized to delete the shortUrl: {}. Error was: {}", user.getEmail(), user.getUserId(), shortUrl.getShortURL(), e.getMessage()); } catch(ValidationException e) { - LOG.info("Cannot delete the shortUrl: " + shortUrl.getShortURL() + ". Error was: " + e.getMessage()); + LOG.info("Cannot delete the shortUrl: {}. Error was: {}", shortUrl.getShortURL(), e.getMessage()); } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionManager.java b/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionManager.java index 972930b3..741c30c5 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionManager.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/SubmissionManager.java @@ -386,7 +386,7 @@ public static void beforeCopiedExperimentDeleted(@NotNull ExperimentAnnotations submission.setCopiedExperimentId(null); updateSubmission(submission, user); } - else if (copiedSubmissions.size() == 1 && copiedSubmissions.get(0).getId() == submission.getId()) + else if (copiedSubmissions.size() == 1 && copiedSubmissions.getFirst().getId() == submission.getId()) { // This is the only copy of the data on Panorama Public. The Panorama Public admin must have a really good reason // for deleting this experiment. @@ -419,8 +419,7 @@ else if (copiedSubmissions.size() == 1 && copiedSubmissions.get(0).getId() == su { // ValidationException can be thrown by ShortURLService.saveShortURL() if the URL is invalid (contains slashes, etc) // We are updating an existing short URL that must be valid so we don't expect to see this exception. Log an error to the server log if it happens. - LOG.error("There was an error updating the target of the short access URL: " + js.getShortAccessUrl().getShortURL() - + "to: '" + sourceExperiment.getContainer().getPath() + "'", e); + LOG.error("There was an error updating the target of the short access URL: {}to: '{}'", js.getShortAccessUrl().getShortURL(), sourceExperiment.getContainer().getPath(), e); } } } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java index 9944478f..fee0039a 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/modification/UnimodMatchDisplayColumnFactory.java @@ -200,7 +200,7 @@ protected List getAssignedUnimodDetails(ExperimentIsotopeModInfo } if (list.size() > 1) { - list.remove(list.size() - 1); // remove the last
+ list.removeLast(); // remove the last
} return list; } diff --git a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/SpecLibInfoTableInfo.java b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/SpecLibInfoTableInfo.java index ca716348..12433fad 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/query/speclib/SpecLibInfoTableInfo.java +++ b/panoramapublic/src/org/labkey/panoramapublic/query/speclib/SpecLibInfoTableInfo.java @@ -13,7 +13,6 @@ import org.labkey.api.query.LookupForeignKey; import org.labkey.api.query.QueryUpdateService; import org.labkey.api.query.RowIdQueryUpdateService; -import org.labkey.api.query.ValidationException; import org.labkey.api.security.User; import org.labkey.api.security.UserPrincipal; import org.labkey.api.security.permissions.Permission; @@ -156,13 +155,13 @@ public void delete(User user, Container container, int key) } @Override - protected SpecLibInfo insert(User user, Container container, SpecLibInfo bean) throws ValidationException + protected SpecLibInfo insert(User user, Container container, SpecLibInfo bean) { throw new UnsupportedOperationException(); } @Override - protected SpecLibInfo update(User user, Container container, SpecLibInfo bean, Integer oldKey) throws ValidationException + protected SpecLibInfo update(User user, Container container, SpecLibInfo bean, Integer oldKey) { throw new UnsupportedOperationException(); } diff --git a/panoramapublic/src/org/labkey/panoramapublic/speclib/BlibReader.java b/panoramapublic/src/org/labkey/panoramapublic/speclib/BlibReader.java index 64357367..ab05d134 100644 --- a/panoramapublic/src/org/labkey/panoramapublic/speclib/BlibReader.java +++ b/panoramapublic/src/org/labkey/panoramapublic/speclib/BlibReader.java @@ -9,7 +9,6 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; diff --git a/panoramapublic/test/src/org/labkey/test/components/panoramapublic/TargetedMsExperimentWebPart.java b/panoramapublic/test/src/org/labkey/test/components/panoramapublic/TargetedMsExperimentWebPart.java index f610c43c..24fc4fc7 100644 --- a/panoramapublic/test/src/org/labkey/test/components/panoramapublic/TargetedMsExperimentWebPart.java +++ b/panoramapublic/test/src/org/labkey/test/components/panoramapublic/TargetedMsExperimentWebPart.java @@ -2,7 +2,6 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; -import org.labkey.test.WebTest; import org.labkey.test.WebTestHelper; import org.labkey.test.components.BodyWebPart; import org.labkey.test.util.DataRegionTable; @@ -10,7 +9,6 @@ import java.net.MalformedURLException; import java.net.URL; -import java.util.Map; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; diff --git a/panoramapublic/test/src/org/labkey/test/pages/panoramapublic/DataValidationPage.java b/panoramapublic/test/src/org/labkey/test/pages/panoramapublic/DataValidationPage.java index 16d1e2f7..71717bdf 100644 --- a/panoramapublic/test/src/org/labkey/test/pages/panoramapublic/DataValidationPage.java +++ b/panoramapublic/test/src/org/labkey/test/pages/panoramapublic/DataValidationPage.java @@ -252,7 +252,7 @@ public void verifyModificationStatus(String modName, boolean inferred, String un var cells = elementCache().getModificationRowCells(rowIdx); List cellValues = new ArrayList<>(); cells.forEach(cell -> cellValues.add(cell.getText())); - assertTrue(modName + " was not found in modification row " + rowIdx, cellValues.get(1).equals(modName)); + assertEquals(modName + " was not found in modification row " + rowIdx, cellValues.get(1), modName); if (unimodId == null) { @@ -263,7 +263,7 @@ public void verifyModificationStatus(String modName, boolean inferred, String un String expectedUnimod = unimodId + (unimodId2 != null ? " + " + unimodId2 : ""); assertTrue(cellValues + " does not contain " + expectedUnimod, cellValues.get(2).contains(expectedUnimod)); String expectedUnimodName = unimodName + (unimodName2 != null ? " + " +unimodName2 : ""); - assertTrue(cellValues + " does not contain " + expectedUnimodName, cellValues.get(3).equals(expectedUnimodName)); + assertEquals(cellValues + " does not contain " + expectedUnimodName, cellValues.get(3), expectedUnimodName); } } diff --git a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicMyDataViewTest.java b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicMyDataViewTest.java index 3db85dd9..70b635f6 100644 --- a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicMyDataViewTest.java +++ b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicMyDataViewTest.java @@ -116,7 +116,7 @@ private void viewSubmitterData(String submitter, List experimentTitles, int dataPublicCol = table.getColumnIndex(COL_PUBLIC); verifyColumnValues(table, catalogEntryCol, dataPublicCol, experimentTitles.size()); - String firstExptTitle = actualExptTitles.get(0); + String firstExptTitle = actualExptTitles.getFirst(); // Make one dataset public int titleCol = table.getColumnIndex(COL_TITLE); diff --git a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicTest.java b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicTest.java index ef6ee5e6..2dbc92eb 100644 --- a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicTest.java +++ b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PanoramaPublicTest.java @@ -206,7 +206,7 @@ private void verifySubmissions(int submissionCount, List copied, List dataF savePrivateDataReminderSettings("2", "0", "0"); // Request extension for the first experiment. - log("Requesting extension for experiment Id " + privateData.get(0).getExperimentAnnotationsId()); - requestExtension(projectName, privateData.get(0)); + log("Requesting extension for experiment Id " + privateData.getFirst().getExperimentAnnotationsId()); + requestExtension(projectName, privateData.getFirst()); postReminders(projectName, false, privateDataCount, -1, ++pipelineJobCount); verifyReminderPosted(projectName, privateData.get(0),1); // No new reminders since extension requested. verifyReminderPosted(projectName, privateData.get(1), 2); // Reminder posted since reminder frequency is 0. diff --git a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PublicationSearchTest.java b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PublicationSearchTest.java index 93e7b3bd..57466b63 100644 --- a/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PublicationSearchTest.java +++ b/panoramapublic/test/src/org/labkey/test/tests/panoramapublic/PublicationSearchTest.java @@ -309,7 +309,7 @@ private Map getDatasetStatus(String panoramaPublicProject, Strin return null; } assertEquals("Expected at most one DatasetStatus row for experiment " + exptId, 1, rows.size()); - return rows.get(0); + return rows.getFirst(); } catch (IOException | CommandException e) { diff --git a/pwebdashboard/src/org/labkey/pwebdashboard/PwebDashboardModule.java b/pwebdashboard/src/org/labkey/pwebdashboard/PwebDashboardModule.java index 8e18d55b..61319a1f 100644 --- a/pwebdashboard/src/org/labkey/pwebdashboard/PwebDashboardModule.java +++ b/pwebdashboard/src/org/labkey/pwebdashboard/PwebDashboardModule.java @@ -17,7 +17,6 @@ package org.labkey.pwebdashboard; import org.jetbrains.annotations.NotNull; -import org.labkey.api.data.Container; import org.labkey.api.module.ModuleContext; import org.labkey.api.module.SpringModule; import org.labkey.api.view.WebPartFactory; @@ -71,13 +70,6 @@ protected void init() @Override public void startupAfterSpringConfig(ModuleContext moduleContext) { } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } - @Override @NotNull public Set getSchemaNames() diff --git a/signup/src/org/labkey/signup/SignUpController.java b/signup/src/org/labkey/signup/SignUpController.java index a81f690a..f85c71bf 100644 --- a/signup/src/org/labkey/signup/SignUpController.java +++ b/signup/src/org/labkey/signup/SignUpController.java @@ -828,7 +828,7 @@ public ApiResponse execute(SignupForm signupForm, BindException errors) throws E } } - private TempUser getTempUser(SignupForm signupForm, ValidEmail email) throws java.sql.SQLException + private TempUser getTempUser(SignupForm signupForm, ValidEmail email) { // If the user does not exit in LabKey's core database, check in our temporaryusers table TempUser tempUser = SignUpManager.get().getTempUserWithEmail(email.getEmailAddress()); diff --git a/signup/src/org/labkey/signup/SignUpListener.java b/signup/src/org/labkey/signup/SignUpListener.java index dec8837e..12e1e395 100644 --- a/signup/src/org/labkey/signup/SignUpListener.java +++ b/signup/src/org/labkey/signup/SignUpListener.java @@ -16,60 +16,22 @@ package org.labkey.signup; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; -import org.jetbrains.annotations.NotNull; -import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager.ContainerListener; import org.labkey.api.security.User; import org.labkey.api.security.UserManager; import java.beans.PropertyChangeEvent; -import java.sql.SQLException; -import java.util.Collection; -import java.util.Collections; public class SignUpListener implements ContainerListener, UserManager.UserListener { - private static final Logger _log = LogManager.getLogger(SignUpListener.class); - @Override public void userDeletedFromSite(User user) { - try - { - SignUpManager.get().deleteUser(user.getEmail()); - } - catch(SQLException e) - { - _log.error(e); - } - } - - @Override - public void containerCreated(Container c, User user) - { - } - - @Override - public void containerDeleted(Container c, User user) - { + SignUpManager.get().deleteUser(user.getEmail()); } @Override public void propertyChange(PropertyChangeEvent evt) { } - - @Override - public void containerMoved(Container c, Container oldParent, User user) - { - } - - @NotNull - @Override - public Collection canMove(Container c, Container newParent, User user) - { - return Collections.emptyList(); - } } \ No newline at end of file diff --git a/signup/src/org/labkey/signup/SignUpManager.java b/signup/src/org/labkey/signup/SignUpManager.java index 19c44e98..2d9cf0dd 100644 --- a/signup/src/org/labkey/signup/SignUpManager.java +++ b/signup/src/org/labkey/signup/SignUpManager.java @@ -24,8 +24,6 @@ import org.labkey.api.query.FieldKey; import org.labkey.api.security.ValidEmail; -import java.sql.SQLException; - public class SignUpManager { // Returned messages @@ -74,7 +72,7 @@ public TempUser verifyUser(ValidEmail email, String key) return new TableSelector(getTableInfoTempUsers(),filter, null).getObject(TempUser.class); } - public void deleteUser(String email) throws SQLException + public void deleteUser(String email) { if (null != getTableInfoTempUsers()) Table.delete(getTableInfoTempUsers(), new SimpleFilter(FieldKey.fromParts("email"), email)); diff --git a/signup/src/org/labkey/signup/SignUpModule.java b/signup/src/org/labkey/signup/SignUpModule.java index ec0011d1..81df9cfb 100644 --- a/signup/src/org/labkey/signup/SignUpModule.java +++ b/signup/src/org/labkey/signup/SignUpModule.java @@ -18,7 +18,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; import org.labkey.api.module.DefaultModule; import org.labkey.api.module.ModuleContext; @@ -30,7 +29,6 @@ import org.labkey.api.view.Portal; import org.labkey.api.view.ViewContext; import org.labkey.api.view.WebPartFactory; -import org.labkey.api.view.WebPartView; import org.labkey.signup.SignUpController.SignupForm; import java.util.ArrayList; @@ -102,13 +100,6 @@ public void doStartup(ModuleContext moduleContext) AdminConsole.addLink(AdminConsole.SettingsLinkType.Configuration, "SignUp", SignUpController.getShowSignUpAdminUrl(), SiteAdminPermission.class); } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } - @Override @NotNull public Set getSchemaNames() diff --git a/testresults/src/org/labkey/testresults/SendTestResultsEmail.java b/testresults/src/org/labkey/testresults/SendTestResultsEmail.java index ebb956ee..55d8d94f 100644 --- a/testresults/src/org/labkey/testresults/SendTestResultsEmail.java +++ b/testresults/src/org/labkey/testresults/SendTestResultsEmail.java @@ -318,7 +318,7 @@ else if (leakHandle) return new Pair(subject, message.toString()); } - public void execute(String ctx, org.labkey.api.security.User from, String emailTo) throws JobExecutionException + public void execute(String ctx, org.labkey.api.security.User from, String emailTo) { List recipients = Collections.singletonList(emailTo); if (ctx.equals(MORNING_EMAIL)) diff --git a/testresults/src/org/labkey/testresults/TestResultsContainerListener.java b/testresults/src/org/labkey/testresults/TestResultsContainerListener.java deleted file mode 100644 index 9d570978..00000000 --- a/testresults/src/org/labkey/testresults/TestResultsContainerListener.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2015 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.labkey.testresults; - -import org.jetbrains.annotations.NotNull; -import org.labkey.api.data.Container; -import org.labkey.api.data.ContainerManager.ContainerListener; -import org.labkey.api.security.User; - -import java.beans.PropertyChangeEvent; -import java.util.Collection; -import java.util.Collections; - -public class TestResultsContainerListener implements ContainerListener -{ - @Override - public void containerCreated(Container c, User user) - { - } - - @Override - public void containerDeleted(Container c, User user) - { - } - - @Override - public void propertyChange(PropertyChangeEvent evt) - { - } - - @Override - public void containerMoved(Container c, Container oldParent, User user) - { - } - - @NotNull - @Override - public Collection canMove(Container c, Container newParent, User user) - { - return Collections.emptyList(); - } -} \ No newline at end of file diff --git a/testresults/src/org/labkey/testresults/TestResultsController.java b/testresults/src/org/labkey/testresults/TestResultsController.java index 997c28b7..64771ca1 100644 --- a/testresults/src/org/labkey/testresults/TestResultsController.java +++ b/testresults/src/org/labkey/testresults/TestResultsController.java @@ -22,6 +22,7 @@ import org.apache.commons.validator.routines.EmailValidator; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.xmlbeans.XmlException; import org.jetbrains.annotations.NotNull; import org.labkey.api.action.ApiSimpleResponse; import org.labkey.api.action.MutatingApiAction; @@ -92,7 +93,6 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; -import javax.management.modelmbean.XMLParseException; import javax.xml.parsers.DocumentBuilder; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; @@ -828,7 +828,7 @@ public Object execute(Object o, BindException errors) throws Exception List values = new ArrayList<>(); sqlSelector.forEach(rs -> values.add(rs.getBoolean(1))); - if (values.get(0)) { + if (values.getFirst()) { SQLFragment sqlFragmentDelete = new SQLFragment(); sqlFragmentDelete.append("DELETE FROM " + TestResultsSchema.getTableInfoGlobalSettings()); new SqlExecutor(TestResultsSchema.getSchema()).execute(sqlFragmentDelete); @@ -862,7 +862,7 @@ public Object execute(Object o, BindException errors) sqlSelector.forEach(rs -> logs.add(rs.getBytes("log"))); if (logs.isEmpty()) return new ApiSimpleResponse("log", null); - return new ApiSimpleResponse("log", RunDetail.decode(logs.get(0))); + return new ApiSimpleResponse("log", RunDetail.decode(logs.getFirst())); } } @@ -886,7 +886,7 @@ public Object execute(Object o, BindException errors) sqlSelector.forEach(rs -> xmls.add(rs.getBytes("xml"))); if (xmls.isEmpty()) return new ApiSimpleResponse("xml", null); - return new ApiSimpleResponse("xml", RunDetail.decode(xmls.get(0))); + return new ApiSimpleResponse("xml", RunDetail.decode(xmls.getFirst())); } } @@ -1232,7 +1232,7 @@ else if (xml.isEmpty()) throw new Exception ("XML from xml_file is empty"); } else - _log.info("XML from xml_file has length: " + xml.length()); + _log.info("XML from xml_file has length: {}", xml.length()); Map res = new HashMap<>(); @@ -1254,20 +1254,20 @@ else if (xml.isEmpty()) private void DebugRequest(HttpServletRequest hsRequest) { - _log.info("Request is " + hsRequest.getClass()); - _log.info("Content length is : "+ hsRequest.getContentLength()); - _log.info("Content type: " + hsRequest.getContentType()); + _log.info("Request is {}", hsRequest.getClass()); + _log.info("Content length is : {}", hsRequest.getContentLength()); + _log.info("Content type: {}", hsRequest.getContentType()); Enumeration headerNames = hsRequest.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); - _log.info("Header " + headerName + ": " + hsRequest.getHeader(headerName)); + _log.info("Header {}: {}", headerName, hsRequest.getHeader(headerName)); } if (hsRequest instanceof MultipartRequest request) { - _log.info("Multi part content type for xml: " + request.getMultipartContentType("xml")); - _log.info("Multi part content type for xml_file: " + request.getMultipartContentType("xml_file")); + _log.info("Multi part content type for xml: {}", request.getMultipartContentType("xml")); + _log.info("Multi part content type for xml_file: {}", request.getMultipartContentType("xml_file")); } } } @@ -1353,14 +1353,14 @@ private static String SaveXML(MultipartFile file, Container c) { { File f = makeFile(c, fileName); if(f.exists()) { - _log.info("A file by the name " + fileName + " is already stored."); + _log.info("A file by the name {} is already stored.", fileName); return "File not saved - file already exists in file system."; } file.transferTo(f); } catch (IOException e) { - _log.error("Failed to save " + fileName + "."); + _log.error("Failed to save {}.", fileName); e.printStackTrace(); return "Failed to save the file."; } @@ -1484,8 +1484,8 @@ private static void ParseAndStoreXML(String xml, Container c) throws Exception } else if (!elLeak.getAttribute("handles").isEmpty()) { // process handle leak handleLeaks.add(new TestHandleLeakDetail(0, elLeak.getAttribute("name"), type, Float.parseFloat(elLeak.getAttribute("handles")))); } else { - _log.error("Error parsing Leak " + elLeak.getAttribute("name") + "."); - throw new XMLParseException(); + _log.error("Error parsing Leak {}.", elLeak.getAttribute("name")); + throw new XmlException("Error parsing Leak"); } } @@ -1763,26 +1763,18 @@ static Date getStartDate(String viewType, String defaultTo, Date endDate) { long currentTime = endDate.getTime(); if (viewType == null) viewType = defaultTo; - switch (viewType) // all the if/else to set dates for runs based on parameters + startDate = switch (viewType) // all the if/else to set dates for runs based on parameters { - case "wk": - default: - startDate = new Date(currentTime - (7 * DAY_IN_MS)); // week - break; - case "mo": - startDate = new Date(currentTime - (30 * DAY_IN_MS)); // month - break; - case "yr": - startDate = new Date(currentTime - (365 * DAY_IN_MS)); // year - break; - case "at": + default -> new Date(currentTime - (7 * DAY_IN_MS)); // week + case "mo" -> new Date(currentTime - (30 * DAY_IN_MS)); // month + case "yr" -> new Date(currentTime - (365 * DAY_IN_MS)); // year + case "at" -> + { long d = 1420070400000L; - startDate = new Date(d); // all time - break; - case "day": - startDate = new Date(currentTime - (DAY_IN_MS)); // day - break; - } + yield new Date(d); + } + case "day" -> new Date(currentTime - (DAY_IN_MS)); // day + }; return startDate; } diff --git a/testresults/src/org/labkey/testresults/TestResultsModule.java b/testresults/src/org/labkey/testresults/TestResultsModule.java index f6082452..172249b4 100644 --- a/testresults/src/org/labkey/testresults/TestResultsModule.java +++ b/testresults/src/org/labkey/testresults/TestResultsModule.java @@ -19,7 +19,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.labkey.api.data.Container; -import org.labkey.api.data.ContainerManager; import org.labkey.api.module.DefaultModule; import org.labkey.api.module.ModuleContext; import org.labkey.api.security.SecurityManager; @@ -89,8 +88,6 @@ protected void init() @Override public void doStartup(ModuleContext moduleContext) { - // add a container listener so we'll know when our container is deleted: - ContainerManager.addContainerListener(new TestResultsContainerListener()); SecurityManager.registerAllowedConnectionSource("jquery-ui", "https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"); } diff --git a/testresults/src/org/labkey/testresults/TestResultsWebPart.java b/testresults/src/org/labkey/testresults/TestResultsWebPart.java index c4a632d4..7202126c 100644 --- a/testresults/src/org/labkey/testresults/TestResultsWebPart.java +++ b/testresults/src/org/labkey/testresults/TestResultsWebPart.java @@ -6,7 +6,6 @@ import org.labkey.api.view.JspView; import org.labkey.api.view.Portal; import org.labkey.api.view.ViewContext; -import org.labkey.api.view.WebPartConfigurationException; import org.labkey.api.view.WebPartFactory; import org.labkey.api.view.WebPartView; import org.labkey.testresults.view.TestsDataBean; @@ -22,7 +21,7 @@ public TestResultsWebPart() } @Override - public WebPartView getWebPartView(@NotNull ViewContext portalCtx, Portal.@NotNull WebPart webPart) throws WebPartConfigurationException + public WebPartView getWebPartView(@NotNull ViewContext portalCtx, Portal.@NotNull WebPart webPart) { Container c =portalCtx.getContainer(); TestsDataBean bean = null; diff --git a/testresults/src/org/labkey/testresults/model/RunDetail.java b/testresults/src/org/labkey/testresults/model/RunDetail.java index 8202cdac..c21c1992 100644 --- a/testresults/src/org/labkey/testresults/model/RunDetail.java +++ b/testresults/src/org/labkey/testresults/model/RunDetail.java @@ -15,6 +15,7 @@ */ package org.labkey.testresults.model; +import org.jetbrains.annotations.NotNull; import org.labkey.api.data.Container; import org.labkey.api.reader.Readers; @@ -341,7 +342,7 @@ public double getAverageMemory() { } @Override - public int compareTo(RunDetail other) { + public int compareTo(@NotNull RunDetail other) { if (this.posttime != null && other.posttime != null) return this.posttime.compareTo(other.posttime); return Integer.compare(this.id, other.id); diff --git a/testresults/src/org/labkey/testresults/model/TestFailDetail.java b/testresults/src/org/labkey/testresults/model/TestFailDetail.java index 24b0b39c..9005dc60 100644 --- a/testresults/src/org/labkey/testresults/model/TestFailDetail.java +++ b/testresults/src/org/labkey/testresults/model/TestFailDetail.java @@ -15,6 +15,8 @@ */ package org.labkey.testresults.model; +import org.jetbrains.annotations.NotNull; + import java.util.Date; /** @@ -118,7 +120,7 @@ public void setTimestamp(Date timestamp) // comparable by date and then id if dates are the same @Override - public int compareTo(TestFailDetail o) + public int compareTo(@NotNull TestFailDetail o) { int diff; if(this.timestamp == null) { diff --git a/testresults/src/org/labkey/testresults/view/LongTermBean.java b/testresults/src/org/labkey/testresults/view/LongTermBean.java index 260b8b64..595c0da0 100644 --- a/testresults/src/org/labkey/testresults/view/LongTermBean.java +++ b/testresults/src/org/labkey/testresults/view/LongTermBean.java @@ -82,8 +82,7 @@ public JSONObject getRunsPerDayJson() { if(!m.containsKey(dateString)) { m.put(dateString, 0); } - int count = m.get(dateString); - m.put(dateString, count+1); + m.compute(dateString, (_, count) -> count + 1); } return new JSONObject(m); } diff --git a/testresults/src/org/labkey/testresults/view/RunDownBean.java b/testresults/src/org/labkey/testresults/view/RunDownBean.java index a11310d1..3ecb1b6b 100644 --- a/testresults/src/org/labkey/testresults/view/RunDownBean.java +++ b/testresults/src/org/labkey/testresults/view/RunDownBean.java @@ -144,11 +144,7 @@ public Map> getTopFailures(int n, boolean isStatRun : new TestsDataBean(getStatRuns(), new User[0]); TestFailDetail[] failures = runs.getFailures(); for(TestFailDetail fail: failures) { - List list = m.get(fail.getTestName()); - if (list == null) { - list = new ArrayList<>(); - m.put(fail.getTestName(), list); - } + List list = m.computeIfAbsent(fail.getTestName(), _ -> new ArrayList<>()); list.add(fail); } Map.Entry>[] entries = m.entrySet().toArray(new Map.Entry[0]); diff --git a/testresults/src/org/labkey/testresults/view/failureDetail.jsp b/testresults/src/org/labkey/testresults/view/failureDetail.jsp index 6537303b..255f2fe1 100644 --- a/testresults/src/org/labkey/testresults/view/failureDetail.jsp +++ b/testresults/src/org/labkey/testresults/view/failureDetail.jsp @@ -137,12 +137,7 @@ } String dateKey = jsDf.format(cal.getTime()); - JSONObject dateObj = dates.get(dateKey); - if (dateObj == null) - { - dateObj = new JSONObject(); - dates.put(dateKey, dateObj); - } + JSONObject dateObj = dates.computeIfAbsent(dateKey, k -> new JSONObject()); int thisFailures = problems.getFailures(run, failedTest).length; if (thisFailures > 0)