[Title] Source Refactoring
authorphjwithyou.park <phjwithyou.park@samsung.com>
Fri, 17 Aug 2012 10:12:55 +0000 (19:12 +0900)
committerphjwithyou.park <phjwithyou.park@samsung.com>
Fri, 17 Aug 2012 10:12:55 +0000 (19:12 +0900)
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

org.tizen.dynamicanalyzer.workbench/src/org/tizen/dynamicanalyzer/workbench/ApplicationWorkbenchWindowAdvisor.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/DASingletonFocusManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/constants/AnalyzerConstants.java

index dab0100..b7c33fa 100755 (executable)
@@ -40,8 +40,6 @@ import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.handlers.ExitHandler;
 import org.tizen.dynamicanalyzer.ui.views.CoolbarArea;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-import org.tizen.dynamicanalyzer.threads.DASingletonCheckThread;
-
 
 public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
 
@@ -49,7 +47,6 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
        private static final int DEFAULT_HEIGHT = 768;
        private static final int MIN_WIDTH = 800;
        private static final int MIN_HEIGHT = 600;
-       private static final int DARunningTrue = 1;
        private int width = DEFAULT_WIDTH;
        private int height = DEFAULT_HEIGHT;
 
@@ -70,28 +67,8 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
        @Override
        public void createWindowContents(Shell shell) {
                CoolbarArea.createInstance(getWindowConfigurer(), shell);
-
-               // Check DA Singleton Dlg.
-               DASingletonCheckThread checkFirstPort = new DASingletonCheckThread();
-               checkFirstPort.start();
-               while (checkFirstPort.bDARunning < 0) {
-                       try {
-                               Thread.sleep(100);
-                       } catch (InterruptedException e) {
-                               e.printStackTrace();
-                       }
-               }
                
-               DASingletonCheckThread checkSecondPort = new DASingletonCheckThread();
-               checkSecondPort.start();
-               while (checkSecondPort.bDARunning < 0) {
-                       try {
-                               Thread.sleep(100);
-                       } catch (InterruptedException e) {
-                               e.printStackTrace();
-                       }
-               }
-               if (checkFirstPort.bDARunning == DARunningTrue && checkSecondPort.bDARunning == DARunningTrue) {
+               if ( DASingletonFocusManager.CheckDASingleton() ) {
                        System.out.print("Already DA Running \n");
                        DASingletonFocusManager.SetFocusDA();
                        System.exit(-1);
@@ -100,7 +77,6 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                        DASingletonFocusManager.SetSaveFocusDAPid();
                        IDEConnectorManager.InitIDESocketThreadListener();
                }
-
        }
 
        @Override
index 97178c9..eff5754 100644 (file)
 
 package org.tizen.dynamicanalyzer;
 
+import java.io.File;
 import java.io.IOException;
+import java.io.RandomAccessFile;
 import java.lang.management.ManagementFactory;
 import java.lang.management.RuntimeMXBean;
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
+
 import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 
+
 public class DASingletonFocusManager {
        private static String pid = null;
        private static String Processid = null;
@@ -105,4 +111,24 @@ public class DASingletonFocusManager {
                ConfigureManager.getInstance().setValue(
                                ConfigureManager.SINGLETON_FOCUS_DA_PID, pid);
        }
+       
+       public static boolean CheckDASingleton(){               
+               
+               File file = null;
+               FileLock fileLock = null;
+               FileChannel fchannel = null;
+               try {
+                       file = new File(  AnalyzerConstants.DA_SINGLETON_FILE_PATH );
+                       fchannel = new RandomAccessFile(file, "rw").getChannel();
+                       fileLock = fchannel.tryLock();
+                       if (fileLock == null) {
+                               return true;
+                       }
+               } catch (Exception e) {
+                       return true;
+               }
+               
+               return false;
+               
+       }
 }
index cff7b62..04bdc54 100644 (file)
@@ -93,7 +93,7 @@ public class AnalyzerConstants {
     public static final String SDB_PATH = PathManager.getSdbPath();\r
     public static final String TARGET_PATH = DYNAMIC_ANALYZER_INSTALL_PATH + File.separator\r
             + "target" + File.separator; //$NON-NLS-1$\r
-\r
+    public static final String DA_SINGLETON_FILE_PATH = DYNAMIC_ANALYZER_INSTALL_PATH + File.separator + "fileLock"; //$NON-NLS-1$\r
     \r
     public static final String InstallPathForLinux     = AnalyzerConstants.TIZEN_ROOT_PATH + "/tools/dynamic-analyzer/tool/windowactivator.sh";\r
     public static final String InstallPathForWindow = AnalyzerConstants.TIZEN_ROOT_PATH+"/tools/dynamic-analyzer/tool/windowactivator.vbs";\r