Skip to content
Snippets Groups Projects
Commit 6893dab6 authored by Rick Herrick's avatar Rick Herrick
Browse files

Fixed issue where initializing templatized DICOM file namer broke...

Fixed issue where initializing templatized DICOM file namer broke Turbine/Velocity initialization. Added initial delay to prearchive rebuild task.
parent 9c2a13fa
No related branches found
No related tags found
No related merge requests found
...@@ -50,7 +50,6 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer { ...@@ -50,7 +50,6 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer {
_log.debug("Initializing the templatized DICOM file namer with the template: " + naming); _log.debug("Initializing the templatized DICOM file namer with the template: " + naming);
} }
_naming = hasExtension(naming) ? naming : naming + SUFFIX; _naming = hasExtension(naming) ? naming : naming + SUFFIX;
_template = initializeTemplate();
_variables = initializeVariables(); _variables = initializeVariables();
_hashes = initializeHashes(); _hashes = initializeHashes();
validate(); validate();
...@@ -88,7 +87,7 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer { ...@@ -88,7 +87,7 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer {
} }
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
try { try {
_template.merge(context, writer); getTemplate().merge(context, writer);
} catch (Exception exception) { } catch (Exception exception) {
throw new RuntimeException("Error trying to resolve naming template", exception); throw new RuntimeException("Error trying to resolve naming template", exception);
} }
...@@ -103,7 +102,7 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer { ...@@ -103,7 +102,7 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer {
*/ */
private String calculateHashString(final List<String> variables, final Map<String,String> values) { private String calculateHashString(final List<String> variables, final Map<String,String> values) {
final int hash = Lists.transform(variables, Functions.forMap(values)).hashCode(); final int hash = Lists.transform(variables, Functions.forMap(values)).hashCode();
return Long.toString(hash & 0xffffffffl, 36); return Long.toString(hash & 0xffffffffL, 36);
} }
/** /**
...@@ -126,16 +125,20 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer { ...@@ -126,16 +125,20 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer {
* @return The initialized Velocity template. * @return The initialized Velocity template.
* @throws Exception * @throws Exception
*/ */
private Template initializeTemplate() throws Exception { private Template getTemplate() throws Exception {
RuntimeServices runtimeServices = RuntimeSingleton.getRuntimeServices(); synchronized (_naming) {
runtimeServices.init(); if (_template == null) {
StringReader reader = new StringReader(_naming); RuntimeServices runtimeServices = RuntimeSingleton.getRuntimeServices();
SimpleNode node = runtimeServices.parse(reader, "naming"); runtimeServices.init();
Template template = new Template(); StringReader reader = new StringReader(_naming);
template.setRuntimeServices(runtimeServices); SimpleNode node = runtimeServices.parse(reader, "naming");
template.setData(node); Template template = new Template();
template.initDocument(); template.setRuntimeServices(runtimeServices);
return template; template.setData(node);
template.initDocument();
}
}
return _template;
} }
/** /**
...@@ -194,7 +197,8 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer { ...@@ -194,7 +197,8 @@ public class TemplatizedDicomFileNamer implements DicomFileNamer {
} }
private final String _naming; private final String _naming;
private final Template _template;
private final Set<String> _variables; private final Set<String> _variables;
private final Map<String, List<String>> _hashes; private final Map<String, List<String>> _hashes;
private Template _template;
} }
...@@ -49,7 +49,7 @@ public class SchedulerConfig { ...@@ -49,7 +49,7 @@ public class SchedulerConfig {
clearExpiredAliasTokens.call(); clearExpiredAliasTokens.call();
} }
@Scheduled(fixedRateString = "${services.rebuilder.repeat:60000}") @Scheduled(fixedRateString = "${services.rebuilder.repeat:60000}", initialDelay = 60000)
public void rebuildSessionXmls() { public void rebuildSessionXmls() {
_log.debug("Now running the session rebuild process."); _log.debug("Now running the session rebuild process.");
final SessionXMLRebuilder sessionXMLRebuilder = new SessionXMLRebuilder(_provider, _interval, _jmsTemplate); final SessionXMLRebuilder sessionXMLRebuilder = new SessionXMLRebuilder(_provider, _interval, _jmsTemplate);
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Tim Olsen (Washington University) -->
<Instance_Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schemas/xdat/instance.xsd" <Instance_Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schemas/xdat/instance.xsd"
site_url="http://localhost:8080" admin_email="administrator@xnat.org" archive_root_path="/data/xnat/archive" site_url="http://localhost:8080" admin_email="administrator@xnat.org" archive_root_path="/data/xnat/archive"
prearchive_path="/data/xnat/prearchive" cache_path="/data/xnat/cache" prearchive_path="/data/xnat/prearchive" cache_path="/data/xnat/cache"
...@@ -19,9 +18,5 @@ ...@@ -19,9 +18,5 @@
<Data_Model File_Name="catalog.xsd" File_Location="schemas/catalog" DB="xnat"/> <Data_Model File_Name="catalog.xsd" File_Location="schemas/catalog" DB="xnat"/>
<Data_Model File_Name="protocolValidation.xsd" File_Location="schemas/validation" DB="xnat"/> <Data_Model File_Name="protocolValidation.xsd" File_Location="schemas/validation" DB="xnat"/>
<Data_Model File_Name="screeningAssessment.xsd" File_Location="schemas/screening" DB="xnat"/> <Data_Model File_Name="screeningAssessment.xsd" File_Location="schemas/screening" DB="xnat"/>
<!--<Data_Model File_Name="ext.xsd" File_Location="schemas/ext" DB="xnat"/>-->
<!-- Start modules schemas: Reserved for xnat_builder, don't modify anything between this line and the end modules line. -->
<!-- End modules schemas: Reserved for xnat_builder, don't modify anything between this line and the start modules line. -->
</Models> </Models>
</Instance_Settings> </Instance_Settings>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment