diff --git a/build.gradle b/build.gradle index b6d7a5afcc91ec47ca55198ab6b256454939718f..63ac93f199ff13d7dc16e4fc00fa1279e9cf75b0 100644 --- a/build.gradle +++ b/build.gradle @@ -116,6 +116,7 @@ configurations { all*.exclude group: 'jamon' all*.exclude group: 'jakarta-regexp' all*.exclude group: 'org.apache.geronimo.specs' + all*.exclude group: 'servletapi' all*.exclude group: 'velocity' all*.exclude group: 'xmlrpc' all*.exclude group: 'ant', module: 'ant' diff --git a/src/main/java/org/nrg/dcm/DicomSCPManager.java b/src/main/java/org/nrg/dcm/DicomSCPManager.java index 73269ae4c36bad7edfdcadf525b684e7528d530e..1503473bafc9884ce692669845ffc9e7dc64a5ab 100644 --- a/src/main/java/org/nrg/dcm/DicomSCPManager.java +++ b/src/main/java/org/nrg/dcm/DicomSCPManager.java @@ -55,7 +55,8 @@ public class DicomSCPManager implements ApplicationContextAware { /** * Sets the preferences for the DICOM SCP manager. - * @param preferences The preferences to set. + * + * @param preferences The preferences to set. */ @SuppressWarnings("unused") public void setPreferences(final DicomSCPPreference preferences) { @@ -195,7 +196,7 @@ public class DicomSCPManager implements ApplicationContextAware { } private void createDicomScpFromInstance(final DicomSCPInstance instance) throws IOException { - final String scpId = instance.getScpId(); + final String scpId = instance.getScpId(); final DicomSCP dicomScp = DicomSCP.create(scpId, Executors.newCachedThreadPool(), instance.getPort(), _provider, instance.getAeTitle(), getIdentifier(instance.getIdentifier()), getDicomFileNamer(instance.getFileNamer())); _dicomSCPs.put(scpId, dicomScp); if (instance.isEnabled()) { @@ -226,9 +227,10 @@ public class DicomSCPManager implements ApplicationContextAware { @Inject private SiteConfigurationService _siteConfigurationService; - private final Map<String, DicomSCP> _dicomSCPs = new HashMap<>(); + @Inject + private DicomSCPPreference _preferences; + private final Map<String, DicomSCP> _dicomSCPs = new HashMap<>(); private ApplicationContext _context; - private DicomSCPPreference _preferences; private final XnatUserProvider _provider; } diff --git a/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java b/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java index 75f03eeb9a331839046cf2f66544db95ec519d22..78ab6aaf7878a3538339c6ba9c497729480327b1 100644 --- a/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java +++ b/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java @@ -42,5 +42,5 @@ public class DicomSCPPreference extends AbstractPreferenceBean { } } private static final Logger _log = LoggerFactory.getLogger(DicomSCPInstance.class); - private static final String PREF_ID = "dicomSCPInstance"; + private static final String PREF_ID = "dicomSCPInstances"; } diff --git a/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java b/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java index 13b143fbeddbfb023c076a38717fa58747861d34..35164494b10c42d83973b895e8d1444b86f29da5 100644 --- a/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java +++ b/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java @@ -8,6 +8,7 @@ import org.nrg.xdat.om.XnatProjectdata; import org.nrg.xnat.DicomObjectIdentifier; import org.nrg.xnat.utils.XnatUserProvider; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import java.util.ArrayList; @@ -15,6 +16,7 @@ import java.util.Arrays; import java.util.List; @Configuration +@ComponentScan("org.nrg.dcm.preferences") public class DicomImportConfig { @Bean public DicomObjectIdentifier<XnatProjectdata> dicomObjectIdentifier(final XnatUserProvider provider) { diff --git a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java index a3da58595d14157022526667b1a18d41afa567de..5d89b0b30b889970285f0e1ce3168fc61dcd5c31 100644 --- a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java +++ b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java @@ -84,20 +84,24 @@ public class XnatWebAppInitializer extends AbstractAnnotationConfigDispatcherSer } private MultipartConfigElement getMultipartConfigElement() { - final String temp; + final String root; + final String subfolder; if (StringUtils.isNotBlank(System.getProperty("xnat.home"))) { - temp = System.getProperty("xnat.home"); + root = System.getProperty("xnat.home"); + subfolder = "work"; } else { - temp = System.getProperty("java.io.tmpdir"); + root = System.getProperty("java.io.tmpdir"); + subfolder = "xnat"; } final String prefix = "xnat_" + Long.toString(System.nanoTime()); try { - final Path path = Paths.get(temp); + final Path path = Paths.get(root, subfolder); path.toFile().mkdirs(); final Path tmpDir = Files.createTempDirectory(path, prefix); + tmpDir.toFile().deleteOnExit(); return new MultipartConfigElement(tmpDir.toAbsolutePath().toString(), MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD); } catch (IOException e) { - throw new NrgServiceRuntimeException("An error occurred trying to create the temp folder " + prefix + " in the containing folder "+ temp); + throw new NrgServiceRuntimeException("An error occurred trying to create the temp folder " + prefix + " in the containing folder "+ root); } }