From c6f9f8b046a500fd29c69fee7d3ef2c9af5df44e Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Tue, 1 Jun 2010 13:13:53 +0000
Subject: [PATCH] LMS-1503 Implementing upload.

SVN: 16245
---
 .../etlserver/api/v1/PutDataSetService.java   | 30 +++++++++++++------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetService.java
index 3eec8d184b5..849baa5468e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetService.java
@@ -51,6 +51,8 @@ public class PutDataSetService
 
     private final DataStrategyStore dataStrategyStore;
 
+    private boolean isInitialized = false;
+
     private MailClient mailClient;
 
     private IETLServerPlugin plugin;
@@ -62,15 +64,6 @@ public class PutDataSetService
         this.openBisService = openBisService;
         this.operationLog = operationLog;
 
-        // PutDataSetServiceInitializer initializer = new PutDataSetServiceInitializer();
-        //
-        // incomingDir = initializer.getIncomingDir();
-        // incomingDir.mkdir();
-        //
-        // plugin = initializer.getPlugin();
-        //
-        // mailClient = new MailClient(initializer.getMailProperties());
-
         this.registrationLock = new ReentrantLock();
 
         this.dataStrategyStore = new DataStrategyStore(this.openBisService, mailClient);
@@ -79,6 +72,11 @@ public class PutDataSetService
     public void putDataSet(String sessionToken, NewDataSetDTO newDataSet, InputStream inputStream)
             throws IOExceptionUnchecked, IllegalArgumentException
     {
+        if (false == isInitialized)
+        {
+            doInitialization();
+        }
+
         try
         {
             new PutDataSetExecutor(this, plugin, sessionToken, newDataSet, inputStream).execute();
@@ -102,6 +100,20 @@ public class PutDataSetService
         }
     }
 
+    private void doInitialization()
+    {
+        PutDataSetServiceInitializer initializer = new PutDataSetServiceInitializer();
+
+        incomingDir = initializer.getIncomingDir();
+        incomingDir.mkdir();
+
+        plugin = initializer.getPlugin();
+
+        mailClient = new MailClient(initializer.getMailProperties());
+
+        isInitialized = true;
+    }
+
     IEncapsulatedOpenBISService getOpenBisService()
     {
         return openBisService;
-- 
GitLab