From e5fee20eaf690497232d75aacac918340ac68c73 Mon Sep 17 00:00:00 2001
From: Rick Herrick <jrherrick@wustl.edu>
Date: Wed, 11 May 2016 14:36:19 -0500
Subject: [PATCH] Removed last of XFT and other preference settings, cleaned up
 some code references.

---
 .../nrg/pipeline/XnatPipelineLauncher.java    |  42 ++-
 .../nrg/pipeline/utils/PipelineFileUtils.java |   9 +-
 .../java/org/nrg/viewer/QCImageCreator.java   |  26 +-
 .../org/nrg/xnat/ajax/GrantProjectAccess.java |   2 +-
 .../org/nrg/xnat/archive/BatchTransfer.java   |   4 +-
 .../java/org/nrg/xnat/archive/Transfer.java   |   4 +-
 .../helpers/prearchive/PrearcDatabase.java    |   4 +-
 .../notifications/NotifyProjectListeners.java |   4 +-
 .../NotifyProjectPipelineListeners.java       |   8 +-
 .../org/nrg/xnat/restlet/XNATApplication.java |  11 +-
 .../restlet/actions/TriggerPipelines.java     |  15 +-
 .../extensions/AuthenticationRestlet.java     |   3 +-
 .../resources/ProjectMemberResource.java      | 115 +++----
 .../resources/ProjtExptPipelineResource.java  |  28 +-
 .../restlet/resources/SecureResource.java     |   4 +-
 .../restlet/services/mail/MailRestlet.java    |   2 +-
 .../file/MoveStoredFileRequestListener.java   |   2 +-
 .../turbine/modules/actions/AddProject.java   |   7 +-
 .../modules/actions/ConfirmRegister.java      |  12 +-
 .../modules/actions/ManagePipeline.java       |  28 +-
 .../modules/actions/ManageProjectAccess.java  |   6 +-
 .../actions/MatchPrearchiveSessions.java      |  20 +-
 .../modules/actions/PipelineActions.java      |  11 +-
 .../modules/actions/ProcessAccessRequest.java |  12 +-
 .../turbine/modules/actions/QDECAction.java   |  11 +-
 .../modules/actions/RequestAccess.java        |   6 +-
 .../turbine/modules/actions/SampleBuild.java  |  11 +-
 .../screens/BuildPipelineParameters.java      |   5 +-
 .../PipelineScreen_set_site_parameters.java   |   4 +-
 .../screens/XDATScreen_UpdateUser.java        |  14 +-
 .../xnat/turbine/utils/ArcSpecManager.java    | 310 +++++++++---------
 .../nrg/xnat/turbine/utils/IDGenerator.java   |   6 +-
 .../turbine/utils/ProjectAccessRequest.java   |   4 +-
 .../java/org/nrg/xnat/utils/FileUtils.java    |   1 +
 34 files changed, 357 insertions(+), 394 deletions(-)

diff --git a/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java b/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
index 19dbb911..e88d15ba 100644
--- a/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
+++ b/src/main/java/org/nrg/pipeline/XnatPipelineLauncher.java
@@ -22,9 +22,7 @@ import org.nrg.xdat.om.WrkWorkflowdata;
 import org.nrg.xdat.om.XnatExperimentdata;
 import org.nrg.xdat.om.XnatImagesessiondata;
 import org.nrg.xdat.services.AliasTokenService;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
-import org.nrg.xft.XFT;
 import org.nrg.xft.event.EventUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
@@ -54,8 +52,8 @@ public class XnatPipelineLauncher {
     private UserI user;
     private String dataType;
     private String host;
-    private Set<String> notificationEmailIds = new HashSet<String>();
-    private Map<String, List<String>> parameters = new Hashtable<String, List<String>>();
+    private Set<String> notificationEmailIds = new HashSet<>();
+    private Map<String, List<String>> parameters = new Hashtable<>();
     private String startAt;
     private boolean waitFor;
     private boolean needsBuildDir;
@@ -136,7 +134,7 @@ public class XnatPipelineLauncher {
         }
 
         if (needsBuildDir) {
-            parameters.put("builddir", Arrays.asList(path));
+            parameters.put("builddir", Collections.singletonList(path));
         }
 
         setNeedsBuildDir(false);
@@ -159,7 +157,7 @@ public class XnatPipelineLauncher {
     }
 
     public XnatPipelineLauncher(RunData data, Context context) {
-        user = TurbineUtils.getUser(data);
+        user = XDAT.getUserDetails();
         host = TurbineUtils.GetFullServerPath();
         startAt = null;
         supressNotification = false;
@@ -182,7 +180,7 @@ public class XnatPipelineLauncher {
 
     private void addUserEmailForNotification() {
         notify(user.getEmail());
-        notify(AdminUtils.getAdminEmailId());
+        notify(XDAT.getSiteConfigPreferences().getAdminEmail());
     }
 
     /*
@@ -192,7 +190,7 @@ public class XnatPipelineLauncher {
      */
 
     public boolean launch() {
-        return launch(XFT.GetPipelinePath() + "bin" + File.separator + SCHEDULE);
+        return launch(XDAT.getSiteConfigPreferences().getPipelinePath() + "bin" + File.separator + SCHEDULE);
     }
 
     /*
@@ -305,7 +303,7 @@ public class XnatPipelineLauncher {
             command = "";
         }
 
-        command += XFT.GetPipelinePath() + "bin" + File.separator + "XnatPipelineLauncher";
+        command += XDAT.getSiteConfigPreferences().getAdminEmail() + "bin" + File.separator + "XnatPipelineLauncher";
 
         if (System.getProperty("os.name").toUpperCase().startsWith("WINDOWS")) {
             command += ".bat";
@@ -332,7 +330,7 @@ public class XnatPipelineLauncher {
     private List<String> getPipelineConfigurationArguments() {
         List<String> arguments = new ArrayList<>();
         try {
-            String pipelinePath = new File(XFT.GetPipelinePath()).getCanonicalPath();
+            String pipelinePath = new File(XDAT.getSiteConfigPreferences().getAdminEmail()).getCanonicalPath();
             boolean requiresQuotes = pipelinePath.contains(" ");
             arguments.add("-config");
             String configPath = pipelinePath + File.separator + "pipeline.config";
@@ -361,7 +359,7 @@ public class XnatPipelineLauncher {
     private List<String> getCommandLineArguments() {
         AliasToken token = XDAT.getContextService().getBean(AliasTokenService.class).issueTokenForUser(user);
 
-        List<String> arguments = new ArrayList<String>();
+        List<String> arguments = new ArrayList<>();
         arguments.add("-pipeline");
         arguments.add(pipelineName);
         arguments.add("-id");
@@ -437,7 +435,7 @@ public class XnatPipelineLauncher {
     }
 
     private Integer initiateWorkflowEntry() throws Exception {
-        WrkWorkflowdata wrk = new WrkWorkflowdata((UserI)user);
+        WrkWorkflowdata wrk = new WrkWorkflowdata(user);
         wrk.setDataType(this.getDataType());
         wrk.setId(this.getId());
         wrk.setExternalid(this.getExternalId());
@@ -516,7 +514,7 @@ public class XnatPipelineLauncher {
         if (parameters.containsKey(name)) {
             parameters.get(name).add(value);
         } else {
-            parameters.put(name, Arrays.asList(value));
+            parameters.put(name, Collections.singletonList(value));
         }
 
     }
@@ -528,7 +526,7 @@ public class XnatPipelineLauncher {
             buildPath = buildPath.substring(0, buildPath.length() - 1);
         }
         if (needsBuildDir) {
-            parameters.put("builddir", Arrays.asList(buildPath + File.separator + "Pipeline"));
+            parameters.put("builddir", Collections.singletonList(buildPath + File.separator + "Pipeline"));
         }
     }
 
@@ -622,11 +620,11 @@ public class XnatPipelineLauncher {
     public static XnatPipelineLauncher GetLauncherForExperiment(RunData data, Context context, XnatExperimentdata imageSession) throws Exception {
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(data, context);
         xnatPipelineLauncher.setSupressNotification(true);
-        UserI user = TurbineUtils.getUser(data);
+        UserI user = XDAT.getUserDetails();
         xnatPipelineLauncher.setParameter("useremail", user.getEmail());
         xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-        xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
-        xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+        xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
+        xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
         xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
 
         xnatPipelineLauncher.setId(imageSession.getId());
@@ -637,8 +635,8 @@ public class XnatPipelineLauncher {
         xnatPipelineLauncher.setParameter("project", imageSession.getProject());
         xnatPipelineLauncher.setParameter("cachepath", QCImageCreator.getQCCachePathForSession(imageSession.getProject()));
 
-        List<String> emails = new ArrayList<String>();
-        emails.add(TurbineUtils.getUser(data).getEmail());
+        List<String> emails = new ArrayList<>();
+        emails.add(XDAT.getUserDetails().getEmail());
 
         String extraEmails = (String) TurbineUtils.GetPassedParameter("emailField", data);
         if (!StringUtils.isBlank(extraEmails)) {
@@ -659,11 +657,11 @@ public class XnatPipelineLauncher {
     public static XnatPipelineLauncher GetBareLauncherForExperiment(RunData data, Context context, XnatExperimentdata imageSession) throws Exception {
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(data, context);
         xnatPipelineLauncher.setSupressNotification(true);
-        UserI user = TurbineUtils.getUser(data);
+        UserI user = XDAT.getUserDetails();
         xnatPipelineLauncher.setParameter("useremail", user.getEmail());
         xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-        xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
-        xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+        xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
+        xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
         xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
 
         xnatPipelineLauncher.setId(imageSession.getId());
diff --git a/src/main/java/org/nrg/pipeline/utils/PipelineFileUtils.java b/src/main/java/org/nrg/pipeline/utils/PipelineFileUtils.java
index 9799b168..4165fa61 100644
--- a/src/main/java/org/nrg/pipeline/utils/PipelineFileUtils.java
+++ b/src/main/java/org/nrg/pipeline/utils/PipelineFileUtils.java
@@ -15,13 +15,14 @@ import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
 import org.nrg.pipeline.xmlbeans.PipelineDocument;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.ArcProject;
-import org.nrg.xft.XFT;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 
 public class PipelineFileUtils {
@@ -35,7 +36,7 @@ public class PipelineFileUtils {
         xopt.setErrorListener(errors);
          XmlObject xo = XmlObject.Factory.parse(xmlFile, xopt);
          if (errors.size() != 0) {
-             throw new XmlException(errors.toArray().toString());
+             throw new XmlException(Arrays.toString(errors.toArray()));
          }
          //String err = XMLBeansUtils.validateAndGetErrors(xo);
          //if (err != null) {
@@ -54,7 +55,7 @@ public class PipelineFileUtils {
 
 
     public static  String getMaxMatching(String file1, String file2, String scanId1, String scanId2) {
-        String rtn = null;
+        String rtn;
         if (file1 == null || file2 == null || scanId1 == null || scanId2 == null) return null;
         int index = 0;
         while (true) {
@@ -91,7 +92,7 @@ public class PipelineFileUtils {
 
 	public static String getBuildDir(String project,  boolean postfixTimestamp) {
 		ArcProject arcProject = ArcSpecManager.GetFreshInstance().getProjectArc(project);
-		String buildPath = XFT.GetPipelinePath()  ;
+		String buildPath = XDAT.getSiteConfigPreferences().getAdminEmail()  ;
 		if (arcProject != null) {
 			buildPath = arcProject.getPaths().getBuildpath();
 		}
diff --git a/src/main/java/org/nrg/viewer/QCImageCreator.java b/src/main/java/org/nrg/viewer/QCImageCreator.java
index fee11743..9a13829c 100644
--- a/src/main/java/org/nrg/viewer/QCImageCreator.java
+++ b/src/main/java/org/nrg/viewer/QCImageCreator.java
@@ -11,24 +11,22 @@
 
 package org.nrg.viewer;
 
-import java.io.File;
-
-import org.apache.log4j.Logger;
 import org.nrg.pipeline.XnatPipelineLauncher;
 import org.nrg.plexiViewer.lite.xml.PlexiViewerSpecForSession;
 import org.nrg.plexiViewer.manager.PlexiSpecDocReader;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.XnatMrsessiondata;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 
+import java.io.File;
+
 public class QCImageCreator {
 
     XnatMrsessiondata mrSession;
     UserI user;
-    static Logger logger = Logger.getLogger(QCImageCreator.class);
-    
+
     public QCImageCreator(XnatMrsessiondata mrSession, UserI user) {
         this.mrSession = mrSession;
         this.user = user;
@@ -38,7 +36,7 @@ public class QCImageCreator {
     public boolean createQCImagesForScans() throws Exception {
 
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(user);
-        xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
         xnatPipelineLauncher.setWaitFor(true);
         String pipelineName = "images/WebBasedQCImageCreator.xml";
@@ -53,9 +51,9 @@ public class QCImageCreator {
         xnatPipelineLauncher.setParameter("session", mrSession.getId() );
         xnatPipelineLauncher.setParameter("notify", "0" );
 	    xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
-	    xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+	    xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
 	    xnatPipelineLauncher.setParameter("useremail", user.getEmail());
-	    xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
+	    xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
 
 
         return xnatPipelineLauncher.launch(null);
@@ -68,8 +66,7 @@ public class QCImageCreator {
 
     public static String GetPathToQCFile(XnatMrsessiondata mrSession, String mrScanId) {
         PlexiViewerSpecForSession viewerSpec = PlexiSpecDocReader.GetInstance().getSpecDoc(mrSession.getSessionType());
-        String rtn =  viewerSpec.getThumbnailArchiveLocation() + File.separator + mrSession.getId() +"_" + mrScanId + "_qc.gif";
-        return rtn;
+        return viewerSpec.getThumbnailArchiveLocation() + File.separator + mrSession.getId() + "_" + mrScanId + "_qc.gif";
     }
     
     
@@ -79,18 +76,17 @@ public class QCImageCreator {
     
     
     public static String getQCThumbnailPathForSession(String project) {
-    	String path = null;
+    	String path;
     	if (project!=null){
             path= ArcSpecManager.GetInstance().getCachePathForProject(project);
          }else{
             path= ArcSpecManager.GetInstance().getGlobalCachePath();
          }
-    	 String thumb_path = path +"Thumbnail/";
-    	return thumb_path;
+        return path + "Thumbnail/";
     }
     
     public static String getQCCachePathForSession(String project) {
-    	String path = null;
+    	String path;
     	if (project!=null){
             path= ArcSpecManager.GetInstance().getCachePathForProject(project);
          }else{
diff --git a/src/main/java/org/nrg/xnat/ajax/GrantProjectAccess.java b/src/main/java/org/nrg/xnat/ajax/GrantProjectAccess.java
index 43c0230e..38a16d32 100644
--- a/src/main/java/org/nrg/xnat/ajax/GrantProjectAccess.java
+++ b/src/main/java/org/nrg/xnat/ajax/GrantProjectAccess.java
@@ -55,7 +55,7 @@ public class GrantProjectAccess {
             context.put("process","Transfer to the archive.");
             context.put("system",TurbineUtils.GetSystemName());
             context.put("access_level",level);
-            context.put("admin_email",AdminUtils.getAdminEmailId());
+            context.put("admin_email",XDAT.getSiteConfigPreferences().getAdminEmail());
             context.put("projectOM",project);
             //SEND email to user
 	    ProjectAccessRequest.InviteUser(context, email, user, user.getFirstname() + " " + user.getLastname()
diff --git a/src/main/java/org/nrg/xnat/archive/BatchTransfer.java b/src/main/java/org/nrg/xnat/archive/BatchTransfer.java
index c28f9d3f..d33c5638 100644
--- a/src/main/java/org/nrg/xnat/archive/BatchTransfer.java
+++ b/src/main/java/org/nrg/xnat/archive/BatchTransfer.java
@@ -409,8 +409,8 @@ public class BatchTransfer extends Thread{
             }
         }
         
-		String[] to = new String[] { AdminUtils.getAdminEmailId(), user.getEmail() };
-            String from = AdminUtils.getAdminEmailId();
+		String[] to = new String[] { XDAT.getSiteConfigPreferences().getAdminEmail(), user.getEmail() };
+            String from = XDAT.getSiteConfigPreferences().getAdminEmail();
             String subject = system + " update: Archiving Complete.";
             if (errors.size()>0)
                 subject += errors.size() + " errors";
diff --git a/src/main/java/org/nrg/xnat/archive/Transfer.java b/src/main/java/org/nrg/xnat/archive/Transfer.java
index f9790624..7fc86549 100644
--- a/src/main/java/org/nrg/xnat/archive/Transfer.java
+++ b/src/main/java/org/nrg/xnat/archive/Transfer.java
@@ -102,7 +102,7 @@ public class Transfer {
 
             XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher((UserI)user);
            // Modified by MR - 2010/03/11 AdminEmail is set in pipeline setup setup
-            // xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+            // xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
            //Modified bt MR - 2010/03/11 There is a setting for Site Admin to set email notification for Transfer pipeline
            // xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
             String pipelineName = "xnat_tools/Transfer.xml";
@@ -131,7 +131,7 @@ public class Transfer {
             xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
             xnatPipelineLauncher.setParameter("adminemail", admin_email);
             xnatPipelineLauncher.setParameter("xnatserver", system);
-            xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+            xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
             xnatPipelineLauncher.setParameter("sessionType", mr.getXSIType());
             xnatPipelineLauncher.setParameter("xnat_project", mr.getProject());
             xnatPipelineLauncher.setParameter("logDir", XDAT.getSiteConfigPreferences().getCachePath() + "logs" + "/" + "transfer");
diff --git a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
index 457369dc..3e8b0f91 100644
--- a/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
+++ b/src/main/java/org/nrg/xnat/helpers/prearchive/PrearcDatabase.java
@@ -178,11 +178,11 @@ public final class PrearcDatabase {
     protected static String getPrearcPath() {
         final SiteConfigPreferences preferences = XDAT.getSiteConfigPreferences();
         if (preferences != null) {
-            return preferences.getArchiveRootPath();
+            return preferences.getPrearchivePath();
         }
         try {
             final Properties properties = XDAT.getSiteConfiguration();
-            return properties.getProperty("archiveRootPath");
+            return properties.getProperty("prearchivePath");
         } catch (ConfigServiceException e) {
             return null;
         }
diff --git a/src/main/java/org/nrg/xnat/notifications/NotifyProjectListeners.java b/src/main/java/org/nrg/xnat/notifications/NotifyProjectListeners.java
index 9a5f0b30..cc1f3761 100644
--- a/src/main/java/org/nrg/xnat/notifications/NotifyProjectListeners.java
+++ b/src/main/java/org/nrg/xnat/notifications/NotifyProjectListeners.java
@@ -83,13 +83,13 @@ public class NotifyProjectListeners implements Callable<Boolean> {
 				Context context =new VelocityContext(_params);
 				
 				
-				String from = AdminUtils.getAdminEmailId();
+				String from = XDAT.getSiteConfigPreferences().getAdminEmail();
 				context.put("user", _user);
 				context.put("expt", _expt);
 				context.put("username", _user.getUsername());
 				context.put("server", TurbineUtils.GetFullServerPath());
 				context.put("system", TurbineUtils.GetSystemName());
-				context.put("admin_email", AdminUtils.getAdminEmailId());
+				context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
 				context.put("params", _params);
 				if(_params.get("justification")!=null){
 					context.put("justification",_params.get("justification"));
diff --git a/src/main/java/org/nrg/xnat/notifications/NotifyProjectPipelineListeners.java b/src/main/java/org/nrg/xnat/notifications/NotifyProjectPipelineListeners.java
index 621488d7..00ecd637 100644
--- a/src/main/java/org/nrg/xnat/notifications/NotifyProjectPipelineListeners.java
+++ b/src/main/java/org/nrg/xnat/notifications/NotifyProjectPipelineListeners.java
@@ -75,21 +75,21 @@ public class NotifyProjectPipelineListeners extends NotifyProjectListeners {
                     email.add(e);
                 }
             }
-            if(!email.contains(AdminUtils.getAdminEmailId())){
-                email.add(AdminUtils.getAdminEmailId());
+            if(!email.contains(XDAT.getSiteConfigPreferences().getAdminEmail())){
+                email.add(XDAT.getSiteConfigPreferences().getAdminEmail());
             }
 
             if(email.size()>0){
                 Context context =new VelocityContext(Maps.newHashMap());
 
 
-                String from = AdminUtils.getAdminEmailId();
+                String from = XDAT.getSiteConfigPreferences().getAdminEmail();
                 context.put("user", _user);
                 context.put("expt", _expt);
                 context.put("username", _user.getUsername());
                 context.put("server", TurbineUtils.GetFullServerPath());
                 context.put("system", TurbineUtils.GetSystemName());
-                context.put("admin_email", AdminUtils.getAdminEmailId());
+                context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
                 context.put("workflow",_workflow);
                 context.put("params", _params);
                 for(Map.Entry<String,Object> entry : _params.entrySet()) {
diff --git a/src/main/java/org/nrg/xnat/restlet/XNATApplication.java b/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
index d7567871..f297f018 100755
--- a/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
+++ b/src/main/java/org/nrg/xnat/restlet/XNATApplication.java
@@ -350,9 +350,6 @@ public class XNATApplication extends Application {
                 "/automation/templates/{TEMPLATE_ID}",
                 "/projects/{PROJECT_ID}/automation/templates",
                 "/projects/{PROJECT_ID}/automation/templates/{TEMPLATE_ID}");
-        attachURI(router, "/services/settings", SettingsRestlet.class);
-        attachURI(router, "/services/settings/{PROPERTY}", SettingsRestlet.class);
-        attachURI(router, "/services/settings/{PROPERTY}/{VALUE}", SettingsRestlet.class);
 
         attachURI(router, "/status/{TRANSACTION_ID}", SQListenerRepresentation.class);
 
@@ -401,7 +398,7 @@ public class XNATApplication extends Application {
             if (clazz.isAnnotationPresent(XnatRestlet.class)) {
                 XnatRestlet annotation = clazz.getAnnotation(XnatRestlet.class);
                 final String[] urls = annotation.value();
-                if (urls == null || urls.length == 0) {
+                if (urls.length == 0) {
                     throw new RuntimeException("The restlet extension class " + clazz.getName() + " has no URLs configured.");
                 }
                 if (annotation.secure()) {
@@ -418,7 +415,7 @@ public class XNATApplication extends Application {
             }else if (clazz.isAnnotationPresent(XnatRestlet2.class)) {
                 XnatRestlet2 annotation = clazz.getAnnotation(XnatRestlet2.class);
                 final XnatRestletURI[] urls = annotation.value();
-                if (urls == null || urls.length == 0) {
+                if (urls.length == 0) {
                     throw new RuntimeException("The restlet extension class " + clazz.getName() + " has no URLs configured.");
                 }
                 if (annotation.secure()) {
@@ -445,7 +442,7 @@ public class XNATApplication extends Application {
     private void attachPath(Router router, Class<? extends Resource> clazz, XnatRestlet annotation) {
         String[] paths = annotation.value();
         boolean required = annotation.required();
-        if (paths == null || paths.length == 0) {
+        if (paths.length == 0) {
             String message = "You must specify a value for the XnatRestlet annotation to indicate the hosting path for the restlet extension in class: " + clazz.getName();
             if (required) {
                 throw new NrgServiceRuntimeException(message);
@@ -462,7 +459,7 @@ public class XNATApplication extends Application {
     private void attachPath(Router router, Class<? extends Resource> clazz, XnatRestlet2 annotation) {
         XnatRestletURI[] paths = annotation.value();
         boolean required = annotation.required();
-        if (paths == null || paths.length == 0) {
+        if (paths.length == 0) {
             String message = "You must specify a value for the XnatRestlet annotation to indicate the hosting path for the restlet extension in class: " + clazz.getName();
             if (required) {
                 throw new NrgServiceRuntimeException(message);
diff --git a/src/main/java/org/nrg/xnat/restlet/actions/TriggerPipelines.java b/src/main/java/org/nrg/xnat/restlet/actions/TriggerPipelines.java
index 4b58b470..e0d04488 100644
--- a/src/main/java/org/nrg/xnat/restlet/actions/TriggerPipelines.java
+++ b/src/main/java/org/nrg/xnat/restlet/actions/TriggerPipelines.java
@@ -10,24 +10,23 @@
  */
 package org.nrg.xnat.restlet.actions;
 
-import java.util.concurrent.Callable;
-
 import org.apache.log4j.Logger;
 import org.nrg.pipeline.XnatPipelineLauncher;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.XnatExperimentdata;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xnat.restlet.util.XNATRestConstants;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 
+import java.util.concurrent.Callable;
+
 /**
  * @author Timothy R. Olsen <olsent@wustl.edu>
  *
  */
 
 public class TriggerPipelines implements Callable<Boolean> {
-	static Logger logger = Logger.getLogger(TriggerPipelines.class);
 	private static final String XNAT_TOOLS_AUTO_RUN_XML = "xnat_tools/AutoRun.xml";
 
 	private final XnatExperimentdata expt;
@@ -48,7 +47,7 @@ public class TriggerPipelines implements Callable<Boolean> {
 
 	public Boolean call() {
 		XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(user);
-        xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
         String pipelineName = XNAT_TOOLS_AUTO_RUN_XML;
         xnatPipelineLauncher.setPipelineName(pipelineName);
@@ -59,14 +58,14 @@ public class TriggerPipelines implements Callable<Boolean> {
         xnatPipelineLauncher.setDataType(expt.getXSIType());
         xnatPipelineLauncher.setExternalId(expt.getProject());
         xnatPipelineLauncher.setWaitFor(this.waitFor);
-        xnatPipelineLauncher.setParameter(XNATRestConstants.SUPRESS_EMAIL, (new Boolean(supressEmail)).toString());
+        xnatPipelineLauncher.setParameter(XNATRestConstants.SUPRESS_EMAIL, (Boolean.valueOf(supressEmail)).toString());
         xnatPipelineLauncher.setParameter("session", expt.getId());
         xnatPipelineLauncher.setParameter("sessionLabel", expt.getLabel());
         xnatPipelineLauncher.setParameter("useremail", user.getEmail());
         xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-        xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
-        xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+        xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
         xnatPipelineLauncher.setParameter("sessionType", expt.getXSIType());
         xnatPipelineLauncher.setParameter("xnat_project", expt.getProject());
 
diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
index cbd2dada..b7f93805 100644
--- a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java
@@ -14,7 +14,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.nrg.xdat.XDAT;
-import org.nrg.xft.XFT;
 import org.nrg.xnat.restlet.XnatRestlet;
 import org.nrg.xnat.security.XnatProviderManager;
 import org.restlet.Context;
@@ -76,7 +75,7 @@ public class AuthenticationRestlet extends Resource {
             _log.debug("Passing a representation of the verify extensions restlet.");
         }
 
-        if (XFT.GetRequireLogin() && (StringUtils.isBlank(_username) || StringUtils.isBlank(_password))) {
+        if (XDAT.getSiteConfigPreferences().getRequireLogin() && (StringUtils.isBlank(_username) || StringUtils.isBlank(_password))) {
             fail();
             return;
         }
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
index 6bdefecc..3292ce80 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjectMemberResource.java
@@ -14,13 +14,14 @@ import com.noelios.restlet.ext.servlet.ServletCall;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.velocity.VelocityContext;
 import org.nrg.action.ActionException;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.display.DisplayManager;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.security.UserGroupI;
 import org.nrg.xdat.security.helpers.Groups;
 import org.nrg.xdat.security.helpers.Permissions;
 import org.nrg.xdat.security.helpers.Users;
-import org.nrg.xdat.turbine.utils.AdminUtils;
+import org.nrg.xdat.security.user.exceptions.UserNotFoundException;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.XFTTable;
 import org.nrg.xft.event.EventMetaI;
@@ -49,8 +50,8 @@ import java.util.List;
 public class ProjectMemberResource extends SecureResource {
 	XnatProjectdata proj=null;
 	UserGroupI group=null;
-	ArrayList<UserI> newUsers= new ArrayList<UserI>();
-	ArrayList<String> unknown= new ArrayList<String>();
+	ArrayList<UserI> newUsers= new ArrayList<>();
+	ArrayList<String> unknown= new ArrayList<>();
 	String gID=null;
     boolean displayHiddenUsers = false;
 	
@@ -61,12 +62,12 @@ public class ProjectMemberResource extends SecureResource {
 			this.getVariants().add(new Variant(MediaType.TEXT_HTML));
 			this.getVariants().add(new Variant(MediaType.TEXT_XML));
 			
-			String pID= (String)getUrlEncodedParameter(request,"PROJECT_ID");
+			String pID= getUrlEncodedParameter(request, "PROJECT_ID");
 			if(pID!=null){
 				proj = XnatProjectdata.getProjectByIDorAlias(pID, user, false);
 			}
 			
-			gID =(String)getUrlEncodedParameter(request,"GROUP_ID");
+			gID = getUrlEncodedParameter(request, "GROUP_ID");
 			
 			group=Groups.getGroup(gID);
 			
@@ -90,44 +91,44 @@ public class ProjectMemberResource extends SecureResource {
 
 			String tempValue =(String)getParameter(request,"USER_ID");
 			try {
-				String[] ids=null;
-				if(tempValue.indexOf(",")>-1){
+				String[] ids;
+				if(tempValue.contains(",")){
 					ids=tempValue.split(",");
 				}else{
 					ids=new String[]{tempValue};
 				}
-				
-				for(int i=0;i<ids.length;i++){
-					String uID=ids[i].trim();
-					Integer xdat_user_id= null;
+
+				for (final String id : ids) {
+					String  uID          = id.trim();
+					Integer xdat_user_id = null;
 					try {
-						xdat_user_id=Integer.parseInt(uID);
-					} catch (NumberFormatException e) {
-						
+						xdat_user_id = Integer.parseInt(uID);
+					} catch (NumberFormatException ignored) {
+
 					}
-					
-					
-					if (xdat_user_id==null){
+
+
+					if (xdat_user_id == null) {
 						//login or email
-						UserI newUser=null;
+						UserI newUser = null;
 						try {
 							newUser = Users.getUser(uID);
-						} catch (Exception e) {
+						} catch (UserNotFoundException ignored) {
 						}
-						if (newUser==null){
+						if (newUser == null) {
 							//by email
-							List<UserI> items =Users.getUsersByEmail(uID);
-							if(items.size()>0){
+							List<UserI> items = Users.getUsersByEmail(uID);
+							if (items.size() > 0) {
 								newUsers.addAll(items);
-							}else{
+							} else {
 								unknown.add(uID);
 							}
-						}else{
+						} else {
 							newUsers.add(newUser);
 						}
-					}else{
+					} else {
 						UserI tempUser = Users.getUser(xdat_user_id);
-						if (tempUser!=null){
+						if (tempUser != null) {
 							newUsers.add(tempUser);
 						}
 					}
@@ -167,9 +168,6 @@ public class ProjectMemberResource extends SecureResource {
 				}else{
 					getResponse().setStatus(Status.CLIENT_ERROR_FORBIDDEN);
 				}
-			} catch (InvalidItemException e) {
-				logger.error("",e);
-				getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
 			} catch (Exception e) {
 				logger.error("",e);
 				getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
@@ -196,7 +194,7 @@ public class ProjectMemberResource extends SecureResource {
 							    context.put("process","Transfer to the archive.");
 							    context.put("system",TurbineUtils.GetSystemName());
 							    context.put("access_level",gID);
-							    context.put("admin_email",AdminUtils.getAdminEmailId());
+							    context.put("admin_email",XDAT.getSiteConfigPreferences().getAdminEmail());
 							    context.put("projectOM",proj);
 							    //SEND email to user
 							    final PersistentWorkflowI wrk=PersistentWorkflowUtils.getOrCreateWorkflowData(null, user, XnatProjectdata.SCHEMA_ELEMENT_NAME, proj.getId(), proj.getId(), newEventInstance(EventUtils.CATEGORY.PROJECT_ACCESS, EventUtils.INVITE_USER_TO_PROJECT + " (" + uID + ")"));
@@ -224,31 +222,27 @@ public class ProjectMemberResource extends SecureResource {
 						for(UserI newUser: newUsers){
 							final PersistentWorkflowI wrk=PersistentWorkflowUtils.getOrCreateWorkflowData(null, user, Users.getUserDataType(),newUser.getID().toString(),proj.getId(),newEventInstance(EventUtils.CATEGORY.PROJECT_ACCESS, EventUtils.ADD_USER_TO_PROJECT));
 					    	EventMetaI c=wrk.buildEvent();
-							
-								try {
-									proj.addGroupMember(group.getId(), newUser, user,WorkflowUtils.setStep(wrk, "Add " + newUser.getLogin()));
-									WorkflowUtils.complete(wrk, c);
-									
-									if (sendmail){
-										try {
-											VelocityContext context = new VelocityContext();
-											
-											context.put("user",user);
-											context.put("server",TurbineUtils.GetFullServerPath(request));
-											context.put("process","Transfer to the archive.");
-											context.put("system",TurbineUtils.GetSystemName());
-											context.put("access_level","member");
-											context.put("admin_email",AdminUtils.getAdminEmailId());
-											context.put("projectOM",proj);
-											org.nrg.xnat.turbine.modules.actions.ProcessAccessRequest.SendAccessApprovalEmail(context, newUser.getEmail(), user, TurbineUtils.GetSystemName() + " Access Granted for " + proj.getName());
-										} catch (Throwable e) {
-											logger.error("",e);
-										}
-									}
-								} catch (Exception e) {
-									throw e;
-								}
-							}
+
+							proj.addGroupMember(group.getId(), newUser, user,WorkflowUtils.setStep(wrk, "Add " + newUser.getLogin()));
+							WorkflowUtils.complete(wrk, c);
+
+							if (sendmail){
+                                try {
+                                    VelocityContext context = new VelocityContext();
+
+                                    context.put("user",user);
+                                    context.put("server",TurbineUtils.GetFullServerPath(request));
+                                    context.put("process","Transfer to the archive.");
+                                    context.put("system",TurbineUtils.GetSystemName());
+                                    context.put("access_level","member");
+                                    context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
+                                    context.put("projectOM",proj);
+                                    org.nrg.xnat.turbine.modules.actions.ProcessAccessRequest.SendAccessApprovalEmail(context, newUser.getEmail(), user, TurbineUtils.GetSystemName() + " Access Granted for " + proj.getName());
+                                } catch (Throwable e) {
+                                    logger.error("",e);
+                                }
+                            }
+						}
 					}
 				}else{
 					getResponse().setStatus(Status.CLIENT_ERROR_FORBIDDEN);
@@ -268,26 +262,23 @@ public class ProjectMemberResource extends SecureResource {
 	}
 
 	@Override
-	public Representation getRepresentation(Variant variant) {	
+	public Representation represent(Variant variant) {
 		XFTTable table=null;
 		if(proj!=null){
 			try {
-                StringBuffer query = new StringBuffer("SELECT g.id AS \"GROUP_ID\", displayname,login,firstname,lastname,email FROM xdat_userGroup g RIGHT JOIN xdat_user_Groupid map ON g.id=map.groupid RIGHT JOIN xdat_user u ON map.groups_groupid_xdat_user_xdat_user_id=u.xdat_user_id WHERE tag='").append(proj.getId()).append("' ");
+                StringBuilder query = new StringBuilder("SELECT g.id AS \"GROUP_ID\", displayname,login,firstname,lastname,email FROM xdat_userGroup g RIGHT JOIN xdat_user_Groupid map ON g.id=map.groupid RIGHT JOIN xdat_user u ON map.groups_groupid_xdat_user_xdat_user_id=u.xdat_user_id WHERE tag='").append(proj.getId()).append("' ");
                 if(!displayHiddenUsers){
                     query.append(" and enabled = 1 ");
                 }
                 query.append(" ORDER BY g.id DESC;");
                 table = XFTTable.Execute(query.toString(), user.getDBName(), user.getLogin());
-			} catch (SQLException e) {
-				logger.error("",e);
-				getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
-			} catch (DBPoolException e) {
+			} catch (SQLException | DBPoolException e) {
 				logger.error("",e);
 				getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
 			}
 		}
 		
-		Hashtable<String,Object> params=new Hashtable<String,Object>();
+		Hashtable<String,Object> params=new Hashtable<>();
 		params.put("title", "Projects");
 
 		MediaType mt = overrideVariant(variant);
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java b/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
index f82bb483..7ebc5b72 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/ProjtExptPipelineResource.java
@@ -11,14 +11,6 @@
 
 package org.nrg.xnat.restlet.resources;
 
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.xmlbeans.XmlOptions;
 import org.nrg.pipeline.XnatPipelineLauncher;
@@ -27,15 +19,11 @@ import org.nrg.pipeline.xmlbeans.ParameterData;
 import org.nrg.pipeline.xmlbeans.ParameterData.Values;
 import org.nrg.pipeline.xmlbeans.ParametersDocument;
 import org.nrg.pipeline.xmlbeans.ParametersDocument.Parameters;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.model.ArcPipelinedataI;
 import org.nrg.xdat.model.ArcPipelineparameterdataI;
-import org.nrg.xdat.om.ArcPipelinedata;
-import org.nrg.xdat.om.ArcProject;
-import org.nrg.xdat.om.XnatExperimentdata;
-import org.nrg.xdat.om.XnatImagesessiondata;
-import org.nrg.xdat.om.XnatProjectdata;
+import org.nrg.xdat.om.*;
 import org.nrg.xdat.security.helpers.Permissions;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.XFTItem;
 import org.nrg.xft.event.EventMetaI;
@@ -58,6 +46,10 @@ import org.restlet.resource.Representation;
 import org.restlet.resource.Variant;
 import org.xml.sax.SAXException;
 
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 public class ProjtExptPipelineResource extends SecureResource {
 	XnatProjectdata proj=null;
 	XnatExperimentdata expt=null;
@@ -282,9 +274,9 @@ public class ProjtExptPipelineResource extends SecureResource {
         hasParams.add("useremail");
         xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
         hasParams.add("userfullname");
-        xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
         hasParams.add("adminemail");
-        xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+        xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
         hasParams.add("mailhost");
         xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
         hasParams.add("xnatserver");
@@ -396,8 +388,8 @@ public class ProjtExptPipelineResource extends SecureResource {
 		xnatPipelineLauncher.setSupressNotification(true);
         xnatPipelineLauncher.setParameter("useremail", user.getEmail());
 	    xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-	    xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
-	    xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+	    xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
+	    xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
 	    xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
 
 
diff --git a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
index 8ecce10a..b4980f64 100644
--- a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
+++ b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java
@@ -151,7 +151,7 @@ public abstract class SecureResource extends Resource {
         // expects that the user exists in the session (either via traditional
         // session or set via the XnatSecureGuard
         user = XDAT.getUserDetails();
-        if(user==null && !XFT.GetRequireLogin()){
+        if(user==null && !XDAT.getSiteConfigPreferences().getRequireLogin()){
             try {
                 user = Users.getGuest();
                 XDAT.setUserDetails(user);
@@ -639,7 +639,7 @@ public abstract class SecureResource extends Resource {
     public FileRepresentation representFile(File f, MediaType mt) {
         mt = buildMediaType(mt, f.getName());
 
-        if (mt.getName().startsWith("APPLICATION") || !XFT.getBooleanProperty("security.allow-HTML-resource-rendering", true)) {
+        if (mt.getName().startsWith("APPLICATION") || !XDAT.getSiteConfigPreferences().getAllowHtmlResourceRendering()) {
             setContentDisposition(f.getName());
         }
 
diff --git a/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java b/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
index 113758c0..b1205228 100644
--- a/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
+++ b/src/main/java/org/nrg/xnat/restlet/services/mail/MailRestlet.java
@@ -78,7 +78,7 @@ public class MailRestlet extends SecureResource {
             MailMessage message = new MailMessage();
 
             // When receiving email send requests through the REST service, the from address is always the admin, with the mail sent on behalf of the validating user.
-            message.setFrom(AdminUtils.getAdminEmailId());
+            message.setFrom(XDAT.getSiteConfigPreferences().getAdminEmail());
             message.setOnBehalfOf(user.getEmail());
 
             // Handle all the addresses.
diff --git a/src/main/java/org/nrg/xnat/services/messaging/file/MoveStoredFileRequestListener.java b/src/main/java/org/nrg/xnat/services/messaging/file/MoveStoredFileRequestListener.java
index 25cd46d5..d25ec48d 100644
--- a/src/main/java/org/nrg/xnat/services/messaging/file/MoveStoredFileRequestListener.java
+++ b/src/main/java/org/nrg/xnat/services/messaging/file/MoveStoredFileRequestListener.java
@@ -77,7 +77,7 @@ public class MoveStoredFileRequestListener {
             }
 
             try {
-                XDAT.getMailService().sendHtmlMessage(AdminUtils.getAdminEmailId(), request.getNotifyList(), subject, message);
+                XDAT.getMailService().sendHtmlMessage(XDAT.getSiteConfigPreferences().getAdminEmail(), request.getNotifyList(), subject, message);
             } catch (MessagingException e) {
                 log.error("Failed to send email.", e);
             }
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
index ebf04d32..4bf7e853 100755
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/AddProject.java
@@ -14,16 +14,19 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.ArcProject;
 import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xdat.om.base.BaseXnatProjectdata;
-import org.nrg.xdat.security.helpers.*;
+import org.nrg.xdat.security.helpers.Groups;
+import org.nrg.xdat.security.helpers.Permissions;
+import org.nrg.xdat.security.helpers.Roles;
+import org.nrg.xdat.security.helpers.UserHelper;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
 import org.nrg.xdat.turbine.modules.screens.EditScreenA;
 import org.nrg.xdat.turbine.utils.PopulateItem;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.ItemI;
-import org.nrg.xft.XFT;
 import org.nrg.xft.XFTItem;
 import org.nrg.xft.db.PoolDBUtils;
 import org.nrg.xft.event.EventMetaI;
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
index 069a156e..c56bcf28 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ConfirmRegister.java
@@ -10,18 +10,18 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import java.util.List;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.security.helpers.Users;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
 import org.nrg.xdat.turbine.modules.screens.SecureScreen;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.security.UserI;
 
+import java.util.List;
+
 public class ConfirmRegister extends SecureAction {
 
     @Override
@@ -38,7 +38,7 @@ public class ConfirmRegister extends SecureAction {
             if(!StringUtils.isEmpty(par)){
             	context.put("par", par);
             }
-		    if (!StringUtils.isEmpty(nextAction) && nextAction.indexOf("XDATLoginUser")==-1 && !nextAction.equals(org.apache.turbine.Turbine.getConfiguration().getString("action.login"))){
+		    if (!StringUtils.isEmpty(nextAction) && !nextAction.contains("XDATLoginUser") && !nextAction.equals(org.apache.turbine.Turbine.getConfiguration().getString("action.login"))){
             	context.put("nextAction", nextAction);
 		    }else if (!StringUtils.isEmpty(nextPage) && !nextPage.equals(org.apache.turbine.Turbine.getConfiguration().getString("template.home")) ) {
             	context.put("nextPage", nextPage);
@@ -50,7 +50,7 @@ public class ConfirmRegister extends SecureAction {
             if (current==null)
             {
             	//allowed to have multiple accounts with the admin email address
-            	if(!StringUtils.equals(newUser.getEmail(),AdminUtils.getAdminEmailId()))
+            	if(!StringUtils.equals(newUser.getEmail(), XDAT.getSiteConfigPreferences().getAdminEmail()))
             	{
             		List<UserI> match=Users.getUsersByEmail(newUser.getEmail());
             		if(match.size()>0){
@@ -72,7 +72,7 @@ public class ConfirmRegister extends SecureAction {
                 data.setMessage("Username (" + newUser.getEmail() + ") already exists.");
                 data.setScreenTemplate("ForgotLogin.vm");
             }
-        } catch (Exception e) {
+        } catch (Exception ignored) {
         }
     }
 
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ManagePipeline.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ManagePipeline.java
index aeed0589..0ac76f4e 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ManagePipeline.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ManagePipeline.java
@@ -11,12 +11,6 @@
 
 package org.nrg.xnat.turbine.modules.actions;
 
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Hashtable;
-
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
@@ -30,17 +24,11 @@ import org.nrg.pipeline.xmlbeans.ParameterData;
 import org.nrg.pipeline.xmlbeans.ParameterData.Values;
 import org.nrg.pipeline.xmlbeans.ParametersDocument;
 import org.nrg.pipeline.xmlbeans.ParametersDocument.Parameters;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.model.ArcPipelinedataI;
-import org.nrg.xdat.om.ArcProject;
-import org.nrg.xdat.om.ArcProjectDescendant;
-import org.nrg.xdat.om.ArcProjectDescendantPipeline;
-import org.nrg.xdat.om.ArcProjectPipeline;
-import org.nrg.xdat.om.PipePipelinedetails;
-import org.nrg.xdat.om.PipePipelinerepository;
-import org.nrg.xdat.om.XnatProjectdata;
+import org.nrg.xdat.om.*;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
 import org.nrg.xdat.turbine.modules.screens.EditScreenA;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.PopulateItem;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.XFTItem;
@@ -61,6 +49,12 @@ import org.nrg.xnat.utils.WorkflowUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Hashtable;
+
 
 public class ManagePipeline extends SecureAction {
 
@@ -386,8 +380,8 @@ public class ManagePipeline extends SecureAction {
             xnatPipelineLauncher.setSupressNotification(true);
             xnatPipelineLauncher.setParameter("useremail", user.getEmail());
             xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-            xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
-            xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+            xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
+            xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
             xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
             xnatPipelineLauncher.setPipelineName(pipeline_path);
             String exptLabel = item.getStringProperty("label");
@@ -433,7 +427,7 @@ public class ManagePipeline extends SecureAction {
         for (int i = 0; i < totalParams; i++) {
 			String name = ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("param[" + i + "].name",data));
 			int rowcount = TurbineUtils.GetPassedInteger("param[" + i + "].name.rowcount", data);
-            ArrayList<String> formvalues = new ArrayList<String>();
+            ArrayList<String> formvalues = new ArrayList<>();
             for (int j = 0; j < rowcount; j++) {
                 String formfieldname = "param[" + i + "][" + j + "].value";
                 if (TurbineUtils.HasPassedParameter(formfieldname, data)) //formvalues.add(data.getParameters().get(formfieldname));
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ManageProjectAccess.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ManageProjectAccess.java
index feba56fc..470659ef 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ManageProjectAccess.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ManageProjectAccess.java
@@ -92,7 +92,7 @@ public class ManageProjectAccess extends SecureAction {
                         context.put("process", "Transfer to the archive.");
                         context.put("system", TurbineUtils.GetSystemName());
                         context.put("access_level", "owner");
-                        context.put("admin_email", AdminUtils.getAdminEmailId());
+                        context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
                         context.put("projectOM", project);
                         org.nrg.xnat.turbine.modules.actions.ProcessAccessRequest.SendAccessApprovalEmail(context, newOwner, TurbineUtils.getUser(data), TurbineUtils.GetSystemName() + " Access Granted for " + project.getName());
                     }
@@ -126,7 +126,7 @@ public class ManageProjectAccess extends SecureAction {
                         context.put("process", "Transfer to the archive.");
                         context.put("system", TurbineUtils.GetSystemName());
                         context.put("access_level", "member");
-                        context.put("admin_email", AdminUtils.getAdminEmailId());
+                        context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
                         context.put("projectOM", project);
                         org.nrg.xnat.turbine.modules.actions.ProcessAccessRequest.SendAccessApprovalEmail(context, newMember, TurbineUtils.getUser(data), TurbineUtils.GetSystemName() + " Access Granted for " + project.getName());
                     }
@@ -160,7 +160,7 @@ public class ManageProjectAccess extends SecureAction {
                         context.put("process", "Transfer to the archive.");
                         context.put("system", TurbineUtils.GetSystemName());
                         context.put("access_level", "collaborator");
-                        context.put("admin_email", AdminUtils.getAdminEmailId());
+                        context.put("admin_email", XDAT.getSiteConfigPreferences().getAdminEmail());
                         context.put("projectOM", project);
                         org.nrg.xnat.turbine.modules.actions.ProcessAccessRequest.SendAccessApprovalEmail(context, newMember, TurbineUtils.getUser(data), TurbineUtils.GetSystemName() + " Access Granted for " + project.getName());
                     }
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/MatchPrearchiveSessions.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/MatchPrearchiveSessions.java
index ecccb7c4..13bcaaf6 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/MatchPrearchiveSessions.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/MatchPrearchiveSessions.java
@@ -10,15 +10,13 @@
  */
 package org.nrg.xnat.turbine.modules.actions;
 
-import java.io.File;
-
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.base.BaseElement;
 import org.nrg.xdat.om.XnatImagescandata;
 import org.nrg.xdat.om.XnatImagesessiondata;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.XFTItem;
 import org.nrg.xft.schema.Wrappers.XMLWrapper.SAXReader;
@@ -26,6 +24,8 @@ import org.nrg.xft.security.UserI;
 import org.nrg.xnat.archive.BatchTransfer;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
 
+import java.io.File;
+
 public class MatchPrearchiveSessions extends SecureAction {
 
     /* (non-Javadoc)
@@ -33,14 +33,14 @@ public class MatchPrearchiveSessions extends SecureAction {
      */
     @Override
     public void doPerform(RunData data, Context context) throws Exception {
-        Integer num= ((Integer)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedInteger("num_sessions",data));
-        BatchTransfer bt = new BatchTransfer(TurbineUtils.GetFullServerPath(),TurbineUtils.GetSystemName(),AdminUtils.getAdminEmailId());
+        Integer num= TurbineUtils.GetPassedInteger("num_sessions", data);
+        BatchTransfer bt = new BatchTransfer(TurbineUtils.GetFullServerPath(), TurbineUtils.GetSystemName(), XDAT.getSiteConfigPreferences().getAdminEmail());
         UserI user =TurbineUtils.getUser(data);
-        bt.setUser((UserI)user);
+        bt.setUser(user);
         String project = (String)TurbineUtils.GetPassedParameter("project", data);
         if (num !=null)
         {
-            for (int h=0;h<=num.intValue();h++)
+            for (int h = 0; h <= num; h++)
             {
                 String sessionFolder = ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("session" + h,data));
                 String match = ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("match" + h,data));
@@ -82,7 +82,7 @@ public class MatchPrearchiveSessions extends SecureAction {
                                                 SAXReader reader = new SAXReader(TurbineUtils.getUser(data));
                                                 XFTItem item = reader.parse(xml.getAbsolutePath());
 
-                                                XnatImagesessiondata mr = (XnatImagesessiondata)XnatImagesessiondata.getXnatImagesessiondatasById(match, user, false);
+                                                XnatImagesessiondata mr = XnatImagesessiondata.getXnatImagesessiondatasById(match, user, false);
                                                 
                                                 int k = 0;
                                                 while(TurbineUtils.HasPassedParameter("match" + h + ".scan" + k + "_id", data)){
@@ -90,10 +90,10 @@ public class MatchPrearchiveSessions extends SecureAction {
                                                     String use = (String)TurbineUtils.GetPassedParameter("match" + h + ".scan" + k + "_use", data);
                                                     String t = (String)TurbineUtils.GetPassedParameter("match" + h + ".scan" + k + "_type", data);
                                                     
-                                                    XnatImagescandata scan = (XnatImagescandata) mr.getScanById(id);
+                                                    XnatImagescandata scan = mr.getScanById(id);
                                                     if (scan==null){
                                                         XnatImagesessiondata tempMR= (XnatImagesessiondata)BaseElement.GetGeneratedItem(item);
-                                                        scan =(XnatImagescandata)tempMR.getScanById(id);
+                                                        scan = tempMR.getScanById(id);
                                                         if (scan!=null){
                                                             mr.setScans_scan(scan);
                                                         }
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
index 942200b0..dc2d33e1 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/PipelineActions.java
@@ -25,6 +25,7 @@ import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.pipeline.PipelineManager;
 import org.nrg.pipeline.XnatPipelineLauncher;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.model.ArcPipelineparameterdataI;
 import org.nrg.xdat.om.WrkWorkflowdata;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
@@ -108,7 +109,7 @@ public class PipelineActions extends SecureAction{
     
     private XnatPipelineLauncher getGenericCommonParameters(RunData data, Context context, String projectId,  String step, ItemI item) throws Exception {
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(data,context);
-        xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
         UserI user = TurbineUtils.getUser(data);
         xnatPipelineLauncher.setNeedsBuildDir(true);
@@ -185,7 +186,7 @@ public class PipelineActions extends SecureAction{
             }
         } catch (Exception e){
         	logger.error("",e);
-            data.setMessage("<p><img src=\"/fcon/images/error.gif\">The build process failed to launch. Please contact the <a href=\"mailto:" + AdminUtils.getAdminEmailId() + "?subject=Failed to launch build \">NRG techdesk</a>");
+            data.setMessage("<p><img src=\"/fcon/images/error.gif\">The build process failed to launch. Please contact the <a href=\"mailto:" + XDAT.getSiteConfigPreferences().getAdminEmail() + "?subject=Failed to launch build \">NRG techdesk</a>");
             data.setScreenTemplate("Error.vm");
         }
     }
@@ -193,7 +194,7 @@ public class PipelineActions extends SecureAction{
     
     private XnatPipelineLauncher getCommonParameters(RunData data, Context context, String projectId, String pipelineName, String step) throws Exception {
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(data,context);
-        xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
         xnatPipelineLauncher.setPipelineName(pipelineName);
         UserI user = TurbineUtils.getUser(data);
@@ -203,9 +204,9 @@ public class PipelineActions extends SecureAction{
         xnatPipelineLauncher.setDataType("xnat:mrSessionData");
         xnatPipelineLauncher.setParameter("useremail", user.getEmail());
         xnatPipelineLauncher.setParameter("userfullname", XnatPipelineLauncher.getUserName(user));
-        xnatPipelineLauncher.setParameter("adminemail", AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setParameter("adminemail", XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setParameter("xnatserver", TurbineUtils.GetSystemName());
-        xnatPipelineLauncher.setParameter("mailhost", AdminUtils.getMailServer());
+        xnatPipelineLauncher.setParameter("mailhost", XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
 
         String emailsStr =  ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("emailField",data));
         if (emailsStr != null) {
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
index c927eca9..73d77bda 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/ProcessAccessRequest.java
@@ -89,18 +89,18 @@ public class ProcessAccessRequest extends SecureAction {
 		    context.put("user",user);
 		    context.put("server",TurbineUtils.GetFullServerPath());
 		    context.put("system",TurbineUtils.GetSystemName());
-		    context.put("admin_email",AdminUtils.getAdminEmailId());
+		    context.put("admin_email",XDAT.getSiteConfigPreferences().getAdminEmail());
 		    context.put("projectOM",project);
 		    StringWriter sw = new StringWriter();
 		    Template template =Velocity.getTemplate("/screens/RequestProjectAccessDenialEmail.vm");
 		    template.merge(context,sw);
 		    String message= sw.toString();
 
-		    String from = AdminUtils.getAdminEmailId();
+		    String from = XDAT.getSiteConfigPreferences().getAdminEmail();
 		    String subject = TurbineUtils.GetSystemName() + " Access Request for " + project.getName() + " Denied";
 
 		    try {
-            	XDAT.getMailService().sendHtmlMessage(from, other.getEmail(), user.getEmail(), AdminUtils.getAdminEmailId(), subject, message);
+            	XDAT.getMailService().sendHtmlMessage(from, other.getEmail(), user.getEmail(), XDAT.getSiteConfigPreferences().getAdminEmail(), subject, message);
 		    } catch (Exception e) {
 		        logger.error("Unable to send mail",e);
 		        throw e;
@@ -174,11 +174,11 @@ public class ProcessAccessRequest extends SecureAction {
             context.put("process","Transfer to the archive.");
             context.put("system",TurbineUtils.GetSystemName());
             context.put("access_level",access_level);
-            context.put("admin_email",AdminUtils.getAdminEmailId());
+            context.put("admin_email",XDAT.getSiteConfigPreferences().getAdminEmail());
             context.put("projectOM",project);
             final ArrayList<String> ownerEmails = project.getOwnerEmails();
             String[] projectOwnerEmails = ownerEmails.toArray(new String[ownerEmails.size()]);
-            SendAccessApprovalEmail(context,AdminUtils.getAdminEmailId(),new String[]{other.getEmail()},projectOwnerEmails,new String[]{AdminUtils.getAdminEmailId()},TurbineUtils.GetSystemName() + " Access Request for " + project.getName() + " Approved");
+            SendAccessApprovalEmail(context,XDAT.getSiteConfigPreferences().getAdminEmail(),new String[]{other.getEmail()},projectOwnerEmails,new String[]{XDAT.getSiteConfigPreferences().getAdminEmail()},TurbineUtils.GetSystemName() + " Access Request for " + project.getName() + " Approved");
         }      
         //data.setScreenTemplate("XDATScreen_manage_xnat_projectData.vm");
         //data.setScreenTemplate("/xnat_projectData/xnat_projectData_summary_management.vm");
@@ -188,7 +188,7 @@ public class ProcessAccessRequest extends SecureAction {
     }
     
     public static void SendAccessApprovalEmail(Context context, String otherEmail, UserI user, String subject) throws Exception {
-	String admin = AdminUtils.getAdminEmailId();
+	String admin = XDAT.getSiteConfigPreferences().getAdminEmail();
         SendAccessApprovalEmail(context, admin, new String[]{otherEmail}, new String[]{user.getEmail()}, new String[]{admin}, subject);
     }
 
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
index a42b5801..8d7262a6 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/QDECAction.java
@@ -32,6 +32,7 @@ import org.nrg.pipeline.xmlbeans.ParameterData;
 import org.nrg.pipeline.xmlbeans.ParameterData.Values;
 import org.nrg.pipeline.xmlbeans.ParametersDocument;
 import org.nrg.pipeline.xmlbeans.ParametersDocument.Parameters;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.search.DisplaySearch;
 import org.nrg.xdat.turbine.modules.actions.ListingAction;
 import org.nrg.xdat.turbine.utils.AdminUtils;
@@ -106,7 +107,7 @@ public class QDECAction extends ListingAction{
         //Launch the job
 		String pipelineName = ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("hdn_pipelinename",data));
         XnatPipelineLauncher xnatPipelineLauncher = new XnatPipelineLauncher(data,context);
-        xnatPipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+        xnatPipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
         xnatPipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
         xnatPipelineLauncher.setPipelineName(pipelineName);
         xnatPipelineLauncher.setId(id);
@@ -122,13 +123,13 @@ public class QDECAction extends ListingAction{
             data.setMessage( "<p><b>Your QDEC analysis was successfully launched.  Status email will be sent to you upon its completion.</b></p>");
             data.setScreenTemplate("ClosePage.vm");
         }catch(Exception e) {
-            data.setMessage("<p><b>The QDEC Analysis process could not be launched.  Please contact <A HREF=\"mailto:"+AdminUtils.getAdminEmailId()+"?subject=Error: Performing QDEC Group Analysis" + "\">Report Error to" +TurbineUtils.GetSystemName() + "  Techdesk</A></b></p>");
+            data.setMessage("<p><b>The QDEC Analysis process could not be launched.  Please contact <A HREF=\"mailto:"+XDAT.getSiteConfigPreferences().getAdminEmail()+"?subject=Error: Performing QDEC Group Analysis" + "\">Report Error to" +TurbineUtils.GetSystemName() + "  Techdesk</A></b></p>");
             data.setScreenTemplate("Error.vm");
         }   
 	}
 	
 	private ArrayList<String> removeSpaces(ArrayList<String> inList) {
-		ArrayList<String> rtn = new ArrayList<String>();
+		ArrayList<String> rtn = new ArrayList<>();
 		for (String aStr: inList) {
 			rtn.add(StringUtils.deleteWhitespace(aStr));
 		}
@@ -200,7 +201,7 @@ public class QDECAction extends ListingAction{
 
         param = parameters.addNewParameter();
         param.setName("adminemail");
-        param.addNewValues().setUnique(AdminUtils.getAdminEmailId());
+        param.addNewValues().setUnique(XDAT.getSiteConfigPreferences().getAdminEmail());
 
         param = parameters.addNewParameter();
         param.setName("xnatserver");
@@ -209,7 +210,7 @@ public class QDECAction extends ListingAction{
         
         param = parameters.addNewParameter();
         param.setName("mailhost");
-        param.addNewValues().setUnique( AdminUtils.getMailServer());
+        param.addNewValues().setUnique( XDAT.getSiteConfigPreferences().getSmtpServer().get("host"));
         
         return parameters;
         
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
index 8d6165a4..a769213b 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/RequestAccess.java
@@ -49,7 +49,7 @@ public class RequestAccess extends SecureAction {
         context.put("server",TurbineUtils.GetFullServerPath());
         context.put("process","Transfer to the archive.");
         context.put("system",TurbineUtils.GetSystemName());
-        context.put("admin_email",AdminUtils.getAdminEmailId());
+        context.put("admin_email",XDAT.getSiteConfigPreferences().getAdminEmail());
         context.put("projectOM",project);
         context.put("access_level",access_level);
         context.put("comments",comments);
@@ -81,10 +81,10 @@ public class RequestAccess extends SecureAction {
 
         String[] bcc = null;
         if(ArcSpecManager.GetInstance().getEmailspecifications_projectAccess()){
-        	bcc = new String[] { AdminUtils.getAdminEmailId() };
+        	bcc = new String[] { XDAT.getSiteConfigPreferences().getAdminEmail() };
         }
         
-        String from = AdminUtils.getAdminEmailId();
+        String from = XDAT.getSiteConfigPreferences().getAdminEmail();
         String subject = TurbineUtils.GetSystemName() + " Access Request for " + project.getName();
 
         try {
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/actions/SampleBuild.java b/src/main/java/org/nrg/xnat/turbine/modules/actions/SampleBuild.java
index aae9fcdb..79eef6cd 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/actions/SampleBuild.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/actions/SampleBuild.java
@@ -15,9 +15,9 @@ import org.apache.log4j.Logger;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
 import org.nrg.pipeline.XnatPipelineLauncher;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.XnatMrsessiondata;
 import org.nrg.xdat.turbine.modules.actions.SecureAction;
-import org.nrg.xdat.turbine.utils.AdminUtils;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.ItemI;
 import org.nrg.xnat.turbine.utils.ArcSpecManager;
@@ -37,17 +37,18 @@ public class SampleBuild extends SecureAction
                 }
                 String xnat = ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("xnat",data));
                 XnatPipelineLauncher pipelineLauncher = new XnatPipelineLauncher(data,context);
-                pipelineLauncher.setAdmin_email(AdminUtils.getAdminEmailId());
+                pipelineLauncher.setAdmin_email(XDAT.getSiteConfigPreferences().getAdminEmail());
                 pipelineLauncher.setAlwaysEmailAdmin(ArcSpecManager.GetInstance().getEmailspecifications_pipeline());
                 pipelineLauncher.setId(mr.getId());
                 pipelineLauncher.setDataType("xnat:mrSessionData");
                 pipelineLauncher.setPipelineName(pipelineName);
                 pipelineLauncher.setParameter("sessionId",mr.getId());
                 pipelineLauncher.setParameter("xnat",xnat);
-                String emailsStr = TurbineUtils.getUser(data).getEmail() + "," + ((String)org.nrg.xdat.turbine.utils.TurbineUtils.GetPassedParameter("emailField",data));
+                String emailsStr = XDAT.getUserDetails().getEmail() + "," + TurbineUtils.GetPassedParameter("emailField", data);
                 String[] emails = emailsStr.trim().split(",");
-                for (int i = 0 ; i < emails.length; i++)
-                     pipelineLauncher.notify(emails[i]);
+                for (final String email : emails) {
+                    pipelineLauncher.notify(email);
+                }
                 boolean success = pipelineLauncher.launch();
                 if (success) {
                     data.setMessage("Build was launched successfully");
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/BuildPipelineParameters.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/BuildPipelineParameters.java
index 9a4d267f..709dd0bb 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/BuildPipelineParameters.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/BuildPipelineParameters.java
@@ -13,14 +13,13 @@ package org.nrg.xnat.turbine.modules.screens;
 
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.XnatMrsessiondata;
 import org.nrg.xdat.turbine.modules.screens.SecureReport;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
 import org.nrg.xft.XFT;
 
-public class BuildPipelineParameters extends SecureReport
-{
-
+public class BuildPipelineParameters extends SecureReport {
     public void preProcessing(RunData data, Context context)
     {
         TurbineUtils.InstanciatePassedItemForScreenUse(data,context);
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/PipelineScreen_set_site_parameters.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/PipelineScreen_set_site_parameters.java
index de09fe62..d53b11b3 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/PipelineScreen_set_site_parameters.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/PipelineScreen_set_site_parameters.java
@@ -19,12 +19,12 @@ import org.nrg.pipeline.xmlbeans.PipelineData.Documentation.InputParameters;
 import org.nrg.pipeline.xmlbeans.PipelineData.Documentation.InputParameters.Parameter;
 import org.nrg.pipeline.xmlbeans.PipelineData.Documentation.InputParameters.Parameter.Values;
 import org.nrg.pipeline.xmlbeans.PipelineDocument;
+import org.nrg.xdat.XDAT;
 import org.nrg.xdat.om.PipePipelinedetails;
 import org.nrg.xdat.om.PipePipelinedetailsParameter;
 import org.nrg.xdat.om.PipePipelinerepository;
 import org.nrg.xdat.turbine.modules.screens.AdminEditScreenA;
 import org.nrg.xdat.turbine.utils.TurbineUtils;
-import org.nrg.xft.XFT;
 import org.nrg.xft.event.EventUtils;
 import org.nrg.xft.security.UserI;
 import org.nrg.xft.utils.SaveItemHelper;
@@ -88,7 +88,7 @@ public class PipelineScreen_set_site_parameters extends AdminEditScreenA{
 		}catch(Exception e) {
 			logger.error(e);
 			e.printStackTrace();
-			data.setMessage("The pipeline could not be added to the repository. Please contact " + XDAT.getSiteConfigPreferences().getAdminEmail() );
+			data.setMessage("The pipeline could not be added to the repository. Please contact " + XDAT.getSiteConfigPreferences().getAdminEmail());
 			data.setScreenTemplate("Error.vm");
 		}
 	}
diff --git a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
index c524493f..bbe5853c 100644
--- a/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
+++ b/src/main/java/org/nrg/xnat/turbine/modules/screens/XDATScreen_UpdateUser.java
@@ -46,22 +46,14 @@ public class XDATScreen_UpdateUser extends SecureScreen {
         }
 
         c.put("user", XDAT.getUserDetails());
-        if (TurbineUtils.GetPassedParameter("popup", data) != null) {
-            if (((String) TurbineUtils.GetPassedParameter("popup", data)).equalsIgnoreCase("true")) {
-                c.put("popup", "true");
-            } else {
-                c.put("popup", "false");
-            }
-        } else {
-            c.put("popup", "false");
-        }
+        checkForPopup(data, c);
 
         c.put("displayManager", DisplayManager.GetInstance());
         c.put("systemName", TurbineUtils.GetSystemName());
         c.put("esc", new EscapeTool());
 
-        c.put("showReason", XFT.getShowChangeJustification());
-        c.put("requireReason", XFT.getRequireChangeJustification());
+        c.put("showReason", XDAT.getSiteConfigPreferences().getShowChangeJustification());
+        c.put("requireReason", XDAT.getSiteConfigPreferences().getRequireChangeJustification());
         try{
             c.put("siteConfig", XDAT.getSiteConfiguration());
         }catch(ConfigServiceException ignored){
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/ArcSpecManager.java b/src/main/java/org/nrg/xnat/turbine/utils/ArcSpecManager.java
index cc5c76f6..c39e1289 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/ArcSpecManager.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/ArcSpecManager.java
@@ -61,131 +61,129 @@ public class ArcSpecManager {
             logger.info("Initializing ArcSpec...");
             arcSpec = GetFreshInstance();
 
-            if (arcSpec!=null){
-
-                if (arcSpec.getSiteAdminEmail()!=null && !arcSpec.getSiteAdminEmail().equals("")){
-                    XFT.SetAdminEmail(arcSpec.getSiteAdminEmail());
-                }else{
-                    arcSpec.setSiteAdminEmail(XDAT.getSiteConfigPreferences().getAdminEmail());
-                }
-
-                if (arcSpec.getSiteUrl()!=null && !arcSpec.getSiteUrl().equals("")){
-                    XFT.SetSiteURL(arcSpec.getSiteUrl());
-                }else{
-                    arcSpec.setSiteUrl(XDAT.getSiteConfigPreferences().getSiteUrl());
-                }
-
-                if (arcSpec.getSiteId()!=null && !arcSpec.getSiteId().equals("")){
-                    XFT.SetSiteID(arcSpec.getSiteId());
-                }else{
-                    arcSpec.setSiteId("");
-                }
-
-                if (arcSpec.getSmtpHost()!=null && !arcSpec.getSmtpHost().equals("")){
-                    XFT.SetAdminEmailHost(arcSpec.getSmtpHost());
-                }else{
-                    arcSpec.setSmtpHost(XFT.GetAdminEmailHost());
-                }
-
-                if (arcSpec.getEnableNewRegistrations()!=null){
-                    XFT.SetUserRegistration(arcSpec.getEnableNewRegistrations().toString());
-                }else{
-                    arcSpec.setEnableNewRegistrations(XDAT.getSiteConfigPreferences().getUserRegistration());
-                }
-
-                if (arcSpec.getRequireLogin()!=null){
-                    XFT.SetRequireLogin(arcSpec.getRequireLogin().toString());
-                }else{
-                    arcSpec.setRequireLogin(XDAT.getSiteConfigPreferences().getRequireLogin());
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getPipelinepath()!=null){
-                    XFT.SetPipelinePath(arcSpec.getGlobalpaths().getPipelinepath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null){
-                        arcSpec.getGlobalpaths().setPipelinepath(XFT.GetPipelinePath());
-                    }
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getArchivepath()!=null){
-                    XFT.SetArchiveRootPath(arcSpec.getGlobalpaths().getArchivepath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null && XFT.GetArchiveRootPath()!=null){
-                        arcSpec.getGlobalpaths().setArchivepath(XFT.GetArchiveRootPath());
-                    }
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getCachepath()!=null){
-                    XFT.SetCachePath(arcSpec.getGlobalpaths().getCachepath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null && XDAT.getSiteConfigPreferences().getCachePath()!=null){
-                        arcSpec.getGlobalpaths().setCachepath(XDAT.getSiteConfigPreferences().getCachePath());
-                    }
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getFtppath()!=null){
-                    XFT.setFtpPath(arcSpec.getGlobalpaths().getFtppath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null && XFT.getFtpPath()!=null){
-                        arcSpec.getGlobalpaths().setFtppath(XFT.getFtpPath());
-                    }
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getBuildpath()!=null){
-                    XFT.setFtpPath(arcSpec.getGlobalpaths().getBuildpath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null && XFT.getBuildPath()!=null){
-                        arcSpec.getGlobalpaths().setBuildpath(XFT.getBuildPath());
-                    }
-                }
-
-                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getPrearchivepath()!=null){
-                    XFT.SetPrearchivePath(arcSpec.getGlobalpaths().getPrearchivepath());
-                }else{
-                    if (arcSpec.getGlobalpaths()!=null && XFT.GetPrearchivePath()!=null){
-                        arcSpec.getGlobalpaths().setPrearchivepath(XFT.GetPrearchivePath());
-                    }
-                }
-
-
-                //set email defaults
-                if (arcSpec.getEmailspecifications_newUserRegistration()==null){
-                    arcSpec.setEmailspecifications_newUserRegistration(true);
-                }
-                if (arcSpec.getEmailspecifications_pageEmail()==null){
-                    arcSpec.setEmailspecifications_pageEmail(true);
-                }
-                if (arcSpec.getEmailspecifications_pipeline()==null){
-                    arcSpec.setEmailspecifications_pipeline(true);
-                }
-                if (arcSpec.getEmailspecifications_projectAccess()==null){
-                    arcSpec.setEmailspecifications_projectAccess(true);
-                }
-                if (arcSpec.getEmailspecifications_transfer()==null){
-                    arcSpec.setEmailspecifications_transfer(true);
-                }
-                //end email defaults
-
-                if (arcSpec.getEmailspecifications_newUserRegistration()!=null){
-                    AdminUtils.SetNewUserRegistrationsEmail(arcSpec.getEmailspecifications_newUserRegistration());
-                }
-
-                if (arcSpec.getEmailspecifications_pageEmail()!=null){
-                    AdminUtils.SetPageEmail(arcSpec.getEmailspecifications_pageEmail());
-                }
-
-                if (arcSpec.getDcm_appletLink()==null){
-                    arcSpec.setDcm_appletLink(Boolean.TRUE);
-                }
-                
-                if (arcSpec.getEnableCsrfToken()!=null){
-                    XFT.SetEnableCsrfToken(arcSpec.getEnableCsrfToken().toString());
-                }else{
-                    arcSpec.setEnableCsrfToken(XDAT.getSiteConfigPreferences().getEnableCsrfToken());
-                }
-                
-                
-            }
+//            if (arcSpec!=null){
+//
+//                if (arcSpec.getSiteAdminEmail()!=null && !arcSpec.getSiteAdminEmail().equals("")){
+//                    XFT.SetAdminEmail(arcSpec.getSiteAdminEmail());
+//                }else{
+//                    arcSpec.setSiteAdminEmail(XDAT.getSiteConfigPreferences().getAdminEmail());
+//                }
+//
+//                if (arcSpec.getSiteUrl()!=null && !arcSpec.getSiteUrl().equals("")){
+//                    XFT.SetSiteURL(arcSpec.getSiteUrl());
+//                }else{
+//                    arcSpec.setSiteUrl(XDAT.getSiteConfigPreferences().getSiteUrl());
+//                }
+//
+//                if (arcSpec.getSiteId()!=null && !arcSpec.getSiteId().equals("")){
+//                    XFT.SetSiteID(arcSpec.getSiteId());
+//                }else{
+//                    arcSpec.setSiteId("");
+//                }
+//
+//                if (arcSpec.getSmtpHost()!=null && !arcSpec.getSmtpHost().equals("")){
+//                    XFT.SetAdminEmailHost(arcSpec.getSmtpHost());
+//                }else{
+//                    arcSpec.setSmtpHost(XFT.GetAdminEmailHost());
+//                }
+//
+//                if (arcSpec.getEnableNewRegistrations()!=null){
+//                    XFT.SetUserRegistration(arcSpec.getEnableNewRegistrations().toString());
+//                }else{
+//                    arcSpec.setEnableNewRegistrations(XDAT.getSiteConfigPreferences().getUserRegistration());
+//                }
+//
+//                if (arcSpec.getRequireLogin()!=null){
+//                    XFT.SetRequireLogin(arcSpec.getRequireLogin().toString());
+//                }else{
+//                    arcSpec.setRequireLogin(XDAT.getSiteConfigPreferences().getRequireLogin());
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getPipelinepath()!=null){
+//                    XFT.SetPipelinePath(arcSpec.getGlobalpaths().getPipelinepath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null){
+//                        arcSpec.getGlobalpaths().setPipelinepath(XDAT.getSiteConfigPreferences().getAdminEmail());
+//                    }
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getArchivepath()!=null){
+//                    XFT.SetArchiveRootPath(arcSpec.getGlobalpaths().getArchivepath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null && XFT.GetArchiveRootPath()!=null){
+//                        arcSpec.getGlobalpaths().setArchivepath(XFT.GetArchiveRootPath());
+//                    }
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getCachepath()!=null){
+//                    XFT.SetCachePath(arcSpec.getGlobalpaths().getCachepath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null && XDAT.getSiteConfigPreferences().getCachePath()!=null){
+//                        arcSpec.getGlobalpaths().setCachepath(XDAT.getSiteConfigPreferences().getCachePath());
+//                    }
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getFtppath()!=null){
+//                    XFT.setFtpPath(arcSpec.getGlobalpaths().getFtppath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null && XFT.getFtpPath()!=null){
+//                        arcSpec.getGlobalpaths().setFtppath(XFT.getFtpPath());
+//                    }
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getBuildpath()!=null){
+//                    XFT.setFtpPath(arcSpec.getGlobalpaths().getBuildpath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null && XFT.getBuildPath()!=null){
+//                        arcSpec.getGlobalpaths().setBuildpath(XFT.getBuildPath());
+//                    }
+//                }
+//
+//                if (arcSpec.getGlobalpaths()!=null && arcSpec.getGlobalpaths().getPrearchivepath()!=null){
+//                    XFT.SetPrearchivePath(arcSpec.getGlobalpaths().getPrearchivepath());
+//                }else{
+//                    if (arcSpec.getGlobalpaths()!=null && XFT.GetPrearchivePath()!=null){
+//                        arcSpec.getGlobalpaths().setPrearchivepath(XFT.GetPrearchivePath());
+//                    }
+//                }
+//
+//
+//                //set email defaults
+//                if (arcSpec.getEmailspecifications_newUserRegistration()==null){
+//                    arcSpec.setEmailspecifications_newUserRegistration(true);
+//                }
+//                if (arcSpec.getEmailspecifications_pageEmail()==null){
+//                    arcSpec.setEmailspecifications_pageEmail(true);
+//                }
+//                if (arcSpec.getEmailspecifications_pipeline()==null){
+//                    arcSpec.setEmailspecifications_pipeline(true);
+//                }
+//                if (arcSpec.getEmailspecifications_projectAccess()==null){
+//                    arcSpec.setEmailspecifications_projectAccess(true);
+//                }
+//                if (arcSpec.getEmailspecifications_transfer()==null){
+//                    arcSpec.setEmailspecifications_transfer(true);
+//                }
+//                //end email defaults
+//
+//                if (arcSpec.getEmailspecifications_newUserRegistration()!=null){
+//                    AdminUtils.SetNewUserRegistrationsEmail(arcSpec.getEmailspecifications_newUserRegistration());
+//                }
+//
+//                if (arcSpec.getEmailspecifications_pageEmail()!=null){
+//                    AdminUtils.SetPageEmail(arcSpec.getEmailspecifications_pageEmail());
+//                }
+//
+//                if (arcSpec.getDcm_appletLink()==null){
+//                    arcSpec.setDcm_appletLink(Boolean.TRUE);
+//                }
+//
+//                if (arcSpec.getEnableCsrfToken()!=null){
+//                    XFT.SetEnableCsrfToken(arcSpec.getEnableCsrfToken().toString());
+//                }else{
+//                    arcSpec.setEnableCsrfToken(XDAT.getSiteConfigPreferences().getEnableCsrfToken());
+//                }
+//            }
 
             try {
                 if (arcSpec!=null){
@@ -236,37 +234,37 @@ public class ArcSpecManager {
             arcSpec.setSiteUrl(XDAT.getSiteConfigPreferences().getSiteUrl());
         }
 
-        if (XFT.GetAdminEmailHost()!=null && !XFT.GetAdminEmailHost().equals("")) {
-            arcSpec.setSmtpHost(XFT.GetAdminEmailHost());
-        }
-
-        arcSpec.setEnableNewRegistrations(XDAT.getSiteConfigPreferences().getUserRegistration());
-
-        arcSpec.setRequireLogin(XDAT.getSiteConfigPreferences().getRequireLogin());
-        if (XFT.GetPipelinePath()!=null && !XFT.GetPipelinePath().equals("")) {
-            arcSpec.setProperty("globalPaths/pipelinePath", XFT.GetPipelinePath());
-        }
-
-        if (XFT.GetArchiveRootPath()!=null && !XFT.GetArchiveRootPath().equals("")) {
-            arcSpec.setProperty("globalPaths/archivePath", XFT.GetArchiveRootPath());
-        }
-
-        if (XFT.GetPrearchivePath()!=null && !XFT.GetPrearchivePath().equals("")) {
-            arcSpec.setProperty("globalPaths/prearchivePath", XFT.GetPrearchivePath());
-        }
-
-        if (XDAT.getSiteConfigPreferences().getCachePath()!=null && !XDAT.getSiteConfigPreferences().getCachePath().equals("")) {
-            arcSpec.setProperty("globalPaths/cachePath", XDAT.getSiteConfigPreferences().getCachePath());
-        }
-
-        if (XFT.getFtpPath()!=null && !XFT.getFtpPath().equals("")) {
-            arcSpec.setProperty("globalPaths/ftpPath", XFT.getFtpPath());
-        }
-
-        if (XFT.getBuildPath()!=null && !XFT.getBuildPath().equals("")) {
-            arcSpec.setProperty("globalPaths/buildPath", XFT.getBuildPath());
-        }
-        arcSpec.setEnableCsrfToken(XFT.GetEnableCsrfToken());
+//        if (XFT.GetAdminEmailHost()!=null && !XFT.GetAdminEmailHost().equals("")) {
+//            arcSpec.setSmtpHost(XFT.GetAdminEmailHost());
+//        }
+//
+//        arcSpec.setEnableNewRegistrations(XDAT.getSiteConfigPreferences().getUserRegistration());
+//
+//        arcSpec.setRequireLogin(XDAT.getSiteConfigPreferences().getRequireLogin());
+//        if (XDAT.getSiteConfigPreferences().getAdminEmail()!=null && !XDAT.getSiteConfigPreferences().getAdminEmail().equals("")) {
+//            arcSpec.setProperty("globalPaths/pipelinePath", XDAT.getSiteConfigPreferences().getAdminEmail());
+//        }
+//
+//        if (XFT.GetArchiveRootPath()!=null && !XFT.GetArchiveRootPath().equals("")) {
+//            arcSpec.setProperty("globalPaths/archivePath", XFT.GetArchiveRootPath());
+//        }
+//
+//        if (XFT.GetPrearchivePath()!=null && !XFT.GetPrearchivePath().equals("")) {
+//            arcSpec.setProperty("globalPaths/prearchivePath", XFT.GetPrearchivePath());
+//        }
+//
+//        if (XDAT.getSiteConfigPreferences().getCachePath()!=null && !XDAT.getSiteConfigPreferences().getCachePath().equals("")) {
+//            arcSpec.setProperty("globalPaths/cachePath", XDAT.getSiteConfigPreferences().getCachePath());
+//        }
+//
+//        if (XFT.getFtpPath()!=null && !XFT.getFtpPath().equals("")) {
+//            arcSpec.setProperty("globalPaths/ftpPath", XFT.getFtpPath());
+//        }
+//
+//        if (XFT.getBuildPath()!=null && !XFT.getBuildPath().equals("")) {
+//            arcSpec.setProperty("globalPaths/buildPath", XFT.getBuildPath());
+//        }
+//        arcSpec.setEnableCsrfToken(XFT.GetEnableCsrfToken());
         
         return arcSpec;
     }
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java b/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
index e6b57e20..d71c1d7d 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/IDGenerator.java
@@ -11,7 +11,7 @@
 package org.nrg.xnat.turbine.utils;
 
 import org.apache.commons.lang3.StringUtils;
-import org.nrg.xft.XFT;
+import org.nrg.xdat.XDAT;
 import org.nrg.xft.XFTTable;
 import org.nrg.xft.identifier.IDGeneratorI;
 import org.nrg.xnat.services.impl.hibernate.HibernateHostInfoService;
@@ -53,7 +53,7 @@ public class IDGenerator implements IDGeneratorI {
 	}
 	
 	/** The claimed i ds. */
-	private static List<String> claimedIDs=new ArrayList<String>();
+	private static List<String> claimedIDs= new ArrayList<>();
 	
 	/** The Constant lock. */
 	private static final Object lock=new Object();
@@ -80,7 +80,7 @@ public class IDGenerator implements IDGeneratorI {
 				site +="_V";
 			}
 			
-			String temp_id=null;
+			String temp_id;
 			
 			XFTTable table = org.nrg.xft.search.TableSearch.Execute("SELECT DISTINCT " + column + " FROM (SELECT " + column + " FROM " + tableName + " WHERE " + column + " LIKE '" + site + "%' UNION SELECT DISTINCT " + column + " FROM " + tableName + "_history WHERE " + column + " LIKE '" + site + "%') SRCH;", null, null);
 	        ArrayList al =table.convertColumnToArrayList(column.toLowerCase());
diff --git a/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java b/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
index 08d261b0..660bb8c0 100644
--- a/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
+++ b/src/main/java/org/nrg/xnat/turbine/utils/ProjectAccessRequest.java
@@ -486,10 +486,10 @@ public class ProjectAccessRequest {
 
         String bcc = null;
         if (ArcSpecManager.GetInstance().getEmailspecifications_projectAccess()) {
-	        bcc = AdminUtils.getAdminEmailId();
+	        bcc = XDAT.getSiteConfigPreferences().getAdminEmail();
         }
 
-        String from = AdminUtils.getAdminEmailId();
+        String from = XDAT.getSiteConfigPreferences().getAdminEmail();
 
         try {
             XDAT.getMailService().sendHtmlMessage(from, invitee, user.getEmail(), bcc, subject, writer.toString());
diff --git a/src/main/java/org/nrg/xnat/utils/FileUtils.java b/src/main/java/org/nrg/xnat/utils/FileUtils.java
index 7a3bf3fa..d7c11066 100644
--- a/src/main/java/org/nrg/xnat/utils/FileUtils.java
+++ b/src/main/java/org/nrg/xnat/utils/FileUtils.java
@@ -13,6 +13,7 @@ package org.nrg.xnat.utils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.nrg.xdat.XDAT;
 import org.nrg.xft.XFT;
 
 import java.io.BufferedReader;
-- 
GitLab