From ead8c04c7d79294f37488bae6c9fb6f3dfe43f9c Mon Sep 17 00:00:00 2001 From: "donghyuk.yang" Date: Sat, 3 Nov 2012 15:59:06 +0900 Subject: [PATCH] [Title] Rollback status of package manager before merging --- org.tizen.nativeplatform/plugin.xml | 13 +- .../build/PlatformProjectDependentPackager.java | 5 +- .../nativeplatform/pkgmgr/RPMPackageCommander.java | 244 ++++++++++++--------- .../nativeplatform/pkgmgr/ui/BuildSystemTab.java | 172 ++++++++++----- .../pkgmgr/ui/PkgMgrUIMessages.properties | 1 + .../nativeplatform/pkgmgr/ui/RPMPackageDialog.java | 34 ++- .../preferences/ui/proxy/HttpProxyUtil.java | 4 +- 7 files changed, 280 insertions(+), 193 deletions(-) diff --git a/org.tizen.nativeplatform/plugin.xml b/org.tizen.nativeplatform/plugin.xml index d220e3c..b88dacf 100644 --- a/org.tizen.nativeplatform/plugin.xml +++ b/org.tizen.nativeplatform/plugin.xml @@ -69,7 +69,7 @@ - + - + - + +--> diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformProjectDependentPackager.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformProjectDependentPackager.java index 8ff60f4..ae3199c 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformProjectDependentPackager.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/build/PlatformProjectDependentPackager.java @@ -156,9 +156,8 @@ public class PlatformProjectDependentPackager extends CommonProjectDependentPack // command "build package" from specified configuration and pkgType private void buildPackage(IConfiguration config, String pkgType) throws SBIException { String targetId = getTargetID(config); - String projectDir = getProjectPath(); - - SmartBuildInterface sbi = SmartBuildInterface.getInstance(); + String projectDir = getProjectPath(); + String rootId = sbi.getRootstrapIDFromTargetID(targetId); PlatformRootstrap rt = RootstrapManager.getRootstrap(rootId); diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/RPMPackageCommander.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/RPMPackageCommander.java index a53dfbf..5db2fbd 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/RPMPackageCommander.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/RPMPackageCommander.java @@ -28,8 +28,12 @@ */ package org.tizen.nativeplatform.pkgmgr; +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; import java.util.ResourceBundle; + import org.tizen.common.util.HostUtil; +import org.tizen.nativecommon.build.SmartBuildInterface; import org.tizen.nativecommon.build.exception.SBIException; import org.tizen.nativeplatform.password.SudoPasswdManager; import org.tizen.nativeplatform.pkgmgr.PackageManagerOuputReceiver; @@ -37,8 +41,9 @@ import org.tizen.sdblib.IDevice; public class RPMPackageCommander { + private final static SmartBuildInterface sbi = SmartBuildInterface.getInstance(); private final static int MAX_TIMEOUT = 10000; - private static String http_proxy = ""; + private static String http_proxy = ""; private static final String BUNDLE_NAME = RPMPackageCommander.class.getPackage().getName() + ".RPMPackageCommands"; private static ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); @@ -48,45 +53,58 @@ public class RPMPackageCommander { public static void setHttpProxy(String proxy) { http_proxy = proxy; - } - - public static void DistUpgradeRootstrap(String path) { + } + + public static void DistUpgradeRootstrap(SmartBuildInterface sbi, String targetID, OutputStream stdoutStream, OutputStream stderrStream) { String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getDistUpgradeCmd()); - String command = getCommand(path, cmd); + String options = getSbiCommand(cmd); try { - HostUtil.executeWithConsole(command, "test"); - } catch (Exception e) { - // TODO Auto-generated catch block + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } - } + } + } - public static void InstallPkgToRootstrap(String fileList, String path) { + public static void InstallPkgToRootstrap(String targetID, String fileList, + OutputStream stdoutStream, OutputStream stderrStream) { - String cmd = String.format("%s;%s", getResetDbCmd(), getInstallLocalPkgCmd(fileList)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getInstallLocalPkgCmd(fileList)); + String options = getSbiCommand(cmd); try { - HostUtil.executeWithConsole(command, "test"); - } catch (Exception e) { - // TODO Auto-generated catch block + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } + } } - public static void UninstallPkgFromRootstrap(String fileList, String option, String path) throws SBIException { + public static void InstallPkgToRootstrap(SmartBuildInterface sbi, String targetID, String fileList, + OutputStream stdoutStream, OutputStream stderrStream) { - String cmd = String.format("%s;%s", getResetDbCmd(), getUninstallPkgCmd(fileList, option)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getInstallLocalPkgCmd(fileList)); + String options = getSbiCommand(cmd); try { - HostUtil.executeWithConsole(command, "test"); - } catch (Exception e) { - // TODO Auto-generated catch block + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } + } + } + + public static void UninstallPkgFromRootstrap(String targetID, String fileList, String option) throws SBIException { + + String cmd = String.format("%s;%s", getResetDbCmd(), getUninstallPkgCmd(fileList, option)); + String options = getSbiCommand(cmd); + OutputStream consoleStdoutStream = new ByteArrayOutputStream(); + OutputStream consoleStderrStream = new ByteArrayOutputStream(); + + try { + sbi.actionStream("command", options, targetID, null, consoleStdoutStream, consoleStderrStream); + } catch (SBIException e) { + throw new SBIException(consoleStderrStream.toString()); + } } public static void InstallPkgToDevice(String fileList, IDevice device, PackageManagerOuputReceiver rec) { @@ -117,25 +135,24 @@ public class RPMPackageCommander { } - public static String getPkgInstalledVerForRootstrap(String pkgName, String path) { + public static String getPkgInstalledVerForRootstrap(String pkgName, String targetID) { String retStr = ""; String version = ""; String release = ""; - if (!pkgInstalledSuccessfullyForRootstrap(pkgName, path)) { + if (!pkgInstalledSuccessfullyForRootstrap(pkgName, targetID)) { return retStr; } String result = null; - String cmd = String.format("%s;%s", getResetDbCmd(), getShowPkgInfoCmd(pkgName)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getShowPkgInfoCmd(pkgName)); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + result = sbi.actionStdOut("command", options, targetID, null); + } catch (SBIException e) { e.printStackTrace(); - } + } String[] splitResult = result.split("\n"); for (String r : splitResult) { @@ -181,21 +198,20 @@ public class RPMPackageCommander { return retStr; } - public static boolean pkgInstalledSuccessfullyForRootstrap(String pkgName, String path) { + public static boolean pkgInstalledSuccessfullyForRootstrap(String pkgName, String targetID) { boolean ret = false; String result = ""; - String cmd = String.format("%s;%s", getResetDbCmd(), getShowPkgCmd(pkgName)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getShowPkgCmd(pkgName)); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + result = sbi.actionStdOut("command", options, targetID, null); + } catch (SBIException e) { e.printStackTrace(); - } - + } + if (!result.isEmpty() && result.contains(pkgName)) { ret = true; } @@ -229,34 +245,32 @@ public class RPMPackageCommander { return ret; } - public static String getRemotePackageListForRootstrap(String path) { + public static String getRemotePackageListForRootstrap(String targetID) { String result = ""; String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getRemotePkgListCmd()); - String command = getCommand(path, cmd); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + result = sbi.actionStdOut("command", options, targetID, null); + } catch (SBIException e) { e.printStackTrace(); - } + } return result; } - public static String getInstalledPackageListForRootstrap(String path) { + public static String getInstalledPackageListForRootstrap(String targetID) { String result = ""; String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getInstalledPkgListCmd()); - String command = getCommand(path, cmd); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + result = sbi.actionStdOut("command", options, targetID, null); + } catch (SBIException e) { e.printStackTrace(); - } - + } + return result; } @@ -279,18 +293,18 @@ public class RPMPackageCommander { return result; } - public static String getRepositoryListForRootstrap(String path) { + public static String getRepositoryListForRootstrap(String targetID) { String result = ""; - String cmd = String.format("%s;%s", getResetDbCmd(), getRepoListCmd()); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getRepoListCmd()); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + result = sbi.actionStdOut("command", options, targetID, null); + } catch (SBIException e) { e.printStackTrace(); - } + } + return result; } @@ -312,16 +326,32 @@ public class RPMPackageCommander { return result; } - - public static String refreshRepositoryForRootstrap(String path) { + + public static String refreshRepositoryForRootstrap(String targetID, OutputStream stdoutStream, OutputStream stderrStream) { String result = ""; - String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getRefreshCmd()); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getRefreshCmd()); + String options = getSbiCommand(cmd); - try { - HostUtil.executeWithConsole(command, "test"); - } catch (Exception e) { + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { + e.printStackTrace(); + } + + return result; + } + + public static String refreshRepositoryForRootstrap(SmartBuildInterface sbi, String targetID, + OutputStream stdoutStream, OutputStream stderrStream) { + + String result = ""; + String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getRefreshCmd()); + String options = getSbiCommand(cmd); + + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); } @@ -347,19 +377,17 @@ public class RPMPackageCommander { return result; } - public static String addRepositoryForRootstrap(String name, String uri, String path) { + public static String addRepositoryForRootstrap(String name, String uri, String targetID, OutputStream stdoutStream, OutputStream stderrStream) { String result = ""; - String cmd = String.format("%s;%s", getResetDbCmd(), getAddRepoCmd(uri, name)); - String command = getCommand(path, cmd); - - try { - result = HostUtil.returnExecute(command, "test"); + String cmd = String.format("%s;%s", getResetDbCmd(), getAddRepoCmd(uri, name)); + String options = getSbiCommand(cmd); - } catch (Exception e) { - // TODO Auto-generated catch block + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } + } return result; } @@ -383,19 +411,17 @@ public class RPMPackageCommander { return result; } - public static String removeRepositoryForRootstrap(String name, String path) { + public static String removeRepositoryForRootstrap(String name, String targetID, OutputStream stdoutStream, OutputStream stderrStream) { String result = ""; - String cmd = String.format("%s;%s", getResetDbCmd(), getRemoteRepoCmd(name)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s", getResetDbCmd(), getRemoteRepoCmd(name)); + String options = getSbiCommand(cmd); - try { - result = HostUtil.returnExecute(command, "test"); - - } catch (Exception e) { - // TODO Auto-generated catch block + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } + } return result; } @@ -419,18 +445,36 @@ public class RPMPackageCommander { return result; } - public static String installRemotePkgForRootstrap(String pkgList, String path) { + public static String installRemotePkgForRootstrap(String pkgList, String targetID, OutputStream stdoutStream, OutputStream stderrStream) { String result = ""; - String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getInstallPkgCmd(pkgList)); - String command = getCommand(path, cmd); + String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getInstallPkgCmd(pkgList)); + String options = getSbiCommand(cmd); + - try { - HostUtil.executeWithConsole(command, "test"); - } catch (Exception e) { + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { e.printStackTrace(); - } + } + + return result; + } + + public static String installRemotePkgForRootstrap(SmartBuildInterface sbi, String pkgList, String targetID, + OutputStream stdoutStream, OutputStream stderrStream) { + + String result = ""; + String cmd = String.format("%s;%s;%s", getProxyCmd(), getResetDbCmd(), getInstallPkgCmd(pkgList)); + String options = getSbiCommand(cmd); + + try { + sbi.actionStream("command", options, targetID, null, stdoutStream, stderrStream); + } catch (SBIException e) { + e.printStackTrace(); + } + return result; } @@ -525,8 +569,8 @@ public class RPMPackageCommander { return String.format(resources.getString("Command.Info.Pkg.File"), tag, name); } - private static String getCommand(String path, String cmd) { + private static String getSbiCommand(String cmd) { String passwd = SudoPasswdManager.getSudoPassword(); - return String.format("sh -c \'echo %s | sudo -S chroot %s sh -c \"%s\"\'", passwd, path, cmd); - } + return String.format("-passwd=%s -path=. -cmd=\"%s\"", passwd, cmd); + } } diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java index 7e370aa..f2a9d92 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/BuildSystemTab.java @@ -39,11 +39,13 @@ import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; +import org.eclipse.ui.console.MessageConsoleStream; +import org.tizen.common.ui.view.console.ConsoleManager; import org.tizen.common.util.DialogUtil; import org.tizen.common.util.FileUtil; import org.tizen.nativecommon.build.CurrentEnabledProject; import org.tizen.nativecommon.build.SmartBuildInterface; -import org.tizen.nativeplatform.build.PlatformConfigurationManager; +import org.tizen.nativecommon.build.exception.SBIException; import org.tizen.nativeplatform.build.PlatformCheckCancelJob; import org.tizen.nativeplatform.pkgmgr.RPMPackageCommander; import org.tizen.nativeplatform.pkgmgr.model.InstalledPackage; @@ -55,34 +57,32 @@ import org.tizen.nativeplatform.pkgmgr.model.RemotePackage; import org.tizen.nativeplatform.pkgmgr.model.RemotePkgProvider; import org.tizen.nativeplatform.pkgmgr.model.Repository; import org.tizen.nativeplatform.pkgmgr.model.RepositoryProvider; -import org.tizen.nativeplatform.views.model.PlatformRootstrap; - public class BuildSystemTab { private IProject project; private TabFolder folder = null; + private String conf = null; + private String targetId = null; private TableViewer repoViewer = null; private TableViewer pkgViewer = null; private final Shell shell; private FileDialog fd; private String previousFilterPath = null; private String selectedFileList; - private PlatformRootstrap rootstrap; private CopyOnWriteArrayList pkgs; - private String rootstrapPath = ""; - private String arch = ""; + private SmartBuildInterface sbi = null; private final String BUNDLE_NAME = BuildSystemTab.class.getPackage().getName() + ".PkgMgrUIMessages";//$NON-NLS-1$ - private final ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); + private final ResourceBundle resources = ResourceBundle.getBundle(BUNDLE_NAME); - public BuildSystemTab(Shell shell, TabFolder folder, PlatformRootstrap rootstrap) { + public BuildSystemTab(Shell shell, TabFolder folder, String conf, String targetId) { this.shell = shell; this.folder = folder; - this.rootstrap = rootstrap; - this.rootstrapPath = rootstrap.getPath().toOSString(); - this.arch = rootstrap.getArch(); + this.conf = conf; + this.targetId = targetId; this.project = CurrentEnabledProject.getCurrentProject(); + this.sbi = SmartBuildInterface.getInstance(project); } public void createTab() { @@ -94,10 +94,10 @@ public class BuildSystemTab { RepositoryProvider.INSTANCE.getBuildsystemRepos().clear(); PackageProvider.INSTANCE.getBuildsystemPkgs().clear(); - String result = RPMPackageCommander.getRepositoryListForRootstrap(rootstrapPath); + String result = RPMPackageCommander.getRepositoryListForRootstrap(targetId); String[] splitStr = result.split("\n"); // url list starts at 3 line - for (int i = 2 ; i < splitStr.length ; i++) { + for (int i = 3 ; i < splitStr.length ; i++) { String s = splitStr[i]; s = s.replaceAll(" ", ""); String[] part = s.split("\\|"); @@ -115,14 +115,14 @@ public class BuildSystemTab { private void createBuildsystemTab( TabFolder parent ) { TabItem buildsystemTab = new TabItem( parent, SWT.NULL ); - buildsystemTab.setText(rootstrap.getName() + " [" + rootstrap.getArch() + "]"); + buildsystemTab.setText(resources.getString("PkgMgr.Tab.Buildsystem")); Composite composite = new Composite(folder, SWT.NONE); buildsystemTab.setControl(composite); composite.setLayout(new GridLayout(1, false)); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - //createInfoComposite( composite ); + createInfoComposite( composite ); createRepositoryGroup( composite ); createPackageGroup( composite ); } @@ -134,7 +134,7 @@ public class BuildSystemTab { info_comp.setLayout(new GridLayout(1, false)); Label configurationLabel = new Label(info_comp, SWT.LEFT); - //configurationLabel.setText(String.format("%s %s", resources.getString("PkgMgr.Label.Configuration"), conf)); + configurationLabel.setText(String.format("%s %s", resources.getString("PkgMgr.Label.Configuration"), conf)); } private void createRepositoryGroup( Composite parent ) @@ -235,8 +235,12 @@ public class BuildSystemTab { Repository repo = (Repository)item.getData(); item.setChecked(repo.getCheckColumn()); - if (repo.getCheckDirty()) { - RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), rootstrapPath); + if (repo.getCheckDirty()) { + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); + RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), targetId, mcs, mcsError); repo.setCheckDirty(false); } } @@ -293,9 +297,17 @@ public class BuildSystemTab { item.setChecked(repo.getCheckColumn()); if (repo.getCheckDirty()) { - list.remove(selectedRepo); - RPMPackageCommander.removeRepositoryForRootstrap(selectedRepo.getName(), rootstrapPath); - RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), rootstrapPath); + list.remove(selectedRepo); + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); + RPMPackageCommander.removeRepositoryForRootstrap(selectedRepo.getName(), targetId, mcs, mcsError); + + cm.clear(); + mcsError = cm.getMessageConsoleStream(); + mcs = cm.getMessageConsoleStream(); + RPMPackageCommander.addRepositoryForRootstrap(repo.getName(), repo.getUri(), targetId, mcs, mcsError); repo.setCheckDirty(false); } } @@ -335,7 +347,11 @@ public class BuildSystemTab { if (selected) { list.remove(repo); - RPMPackageCommander.removeRepositoryForRootstrap(repo.getName(), rootstrapPath); + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); + RPMPackageCommander.removeRepositoryForRootstrap(repo.getName(), targetId, mcs, mcsError); } } @@ -374,14 +390,22 @@ public class BuildSystemTab { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); + monitor.beginTask(resources.getString("PkgMgr.Message.Refreshing"), -1); + + SmartBuildInterface sbi = SmartBuildInterface.getInstance(); - //PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); - //Thread checkCancelThread = new Thread(cancelJob); - //checkCancelThread.start(); + PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); - RPMPackageCommander.refreshRepositoryForRootstrap(rootstrapPath); - //cancelJob.setFinishFlag(true); + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); + Thread checkCancelThread = new Thread(cancelJob); + checkCancelThread.start(); + + RPMPackageCommander.refreshRepositoryForRootstrap(sbi, targetId, mcs, mcsError); + + cancelJob.setFinishFlag(true); } }); } catch (Exception e1) { @@ -512,16 +536,22 @@ public class BuildSystemTab { String[] filterExt = { resources.getString("FileDlg.Filter.Ext") }; fd.setFilterExtensions(filterExt); - String _arch = ""; - if (PlatformConfigurationManager.isDeviceArch(arch)) { - _arch = "armv7l"; - } else if (PlatformConfigurationManager.isEmulatorArch(arch)) { - _arch = "i586"; - } else { - _arch = arch; - } - String defaultPath = rootstrapPath + resources.getString("FileDlg.Default.Path") + _arch; - fd.setFilterPath(defaultPath); + try { + String arch = sbi.getArchitectureFromToolchainID(sbi.getToolchainIDFromTargetID(targetId)); + String _arch = ""; + if ("armel".equals(arch)) { + _arch = "armv7l"; + } else if ("i386".equals(arch)) { + _arch = "i586"; + } else { + _arch = arch; + } + String rootstrapPath = sbi.getRootstrapPath(targetId); + String defaultPath = rootstrapPath + resources.getString("FileDlg.Default.Path") + _arch; + fd.setFilterPath(defaultPath); + } catch (SBIException e2) { + e2.printStackTrace(); + } selectedFileList = fd.open(); @@ -636,13 +666,23 @@ public class BuildSystemTab { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { monitor.beginTask(resources.getString("PkgMgr.Message.Installing.Package"), -1); - - //PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); + + PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); try { String rpmPathList = ""; String localPkgList = ""; - String remotePkgList = ""; + String remotePkgList = ""; + SmartBuildInterface sbi = SmartBuildInterface.getInstance(); + String rootstrapPath = sbi.getRootstrapPath(targetId); + + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); + MessageConsoleStream mcs1 = cm.getMessageConsoleStream(); + MessageConsoleStream mcsError2 = cm.getMessageConsoleStream(); + MessageConsoleStream mcs2 = cm.getMessageConsoleStream(); for (Package pkg : pkgs) { if (pkg instanceof LocalPackage) { @@ -659,17 +699,19 @@ public class BuildSystemTab { } } - //Thread checkCancelThread = new Thread(cancelJob); - //checkCancelThread.start(); + Thread checkCancelThread = new Thread(cancelJob); + checkCancelThread.start(); if(!"".equals(remotePkgList)) { monitor.subTask(String.format("%s %s", resources.getString("PkgMgr.Message.Installing.Package"), remotePkgList)); - RPMPackageCommander.installRemotePkgForRootstrap(remotePkgList, rootstrapPath); + mcs1.write(resources.getString("PkgMgr.Console.Remote.Install")); + RPMPackageCommander.installRemotePkgForRootstrap(sbi, remotePkgList, targetId, mcs, mcsError); } if(!"".equals(localPkgList)) { monitor.subTask(String.format("%s %s", resources.getString("PkgMgr.Message.Installing.Package"), localPkgList)); - RPMPackageCommander.InstallPkgToRootstrap(rpmPathList, rootstrapPath); + mcs1.write(resources.getString("PkgMgr.Console.Local.Install")); + RPMPackageCommander.InstallPkgToRootstrap(sbi, targetId, rpmPathList, mcs2, mcsError2); for (String p : rpmPathList.split(" ")) { File f = new File(rootstrapPath + p); if (f.exists()) { @@ -679,12 +721,12 @@ public class BuildSystemTab { } for (Package pkg : pkgs) { - String installedVer = RPMPackageCommander.getPkgInstalledVerForRootstrap(pkg.getName(), rootstrapPath); + String installedVer = RPMPackageCommander.getPkgInstalledVerForRootstrap(pkg.getName(), targetId); pkg.setInstalledVersion(installedVer); if ("".equals(installedVer)) { pkg.setInstallInfo(Package.INSTALLINFO.NOT_INSTALLED); } else if (installedVer.equals(pkg.getNewVersion())) { - if (RPMPackageCommander.pkgInstalledSuccessfullyForRootstrap(pkg.getName(), rootstrapPath)) { + if (RPMPackageCommander.pkgInstalledSuccessfullyForRootstrap(pkg.getName(), targetId)) { pkg.setInstallInfo(Package.INSTALLINFO.INSTALLED); } else { pkg.setInstallInfo(Package.INSTALLINFO.NOT_INSTALLED); @@ -695,11 +737,14 @@ public class BuildSystemTab { } } catch (IOException e) { - //cancelJob.setFinishFlag(true); + cancelJob.setFinishFlag(true); + e.printStackTrace(); + } catch (SBIException e) { + cancelJob.setFinishFlag(true); e.printStackTrace(); } - //cancelJob.setFinishFlag(true); + cancelJob.setFinishFlag(true); monitor.done(); } }); @@ -747,7 +792,7 @@ public class BuildSystemTab { e1.printStackTrace(); } - RemoveInstalledPackageDialog dlg = new RemoveInstalledPackageDialog(shell, rootstrapPath); + RemoveInstalledPackageDialog dlg = new RemoveInstalledPackageDialog(shell, targetId); dlg.open(); } @@ -778,14 +823,21 @@ public class BuildSystemTab { InterruptedException { monitor.beginTask(resources.getString("PkgMgr.Message.Dist.Upgrade"), -1); + SmartBuildInterface sbi = SmartBuildInterface.getInstance(); + + PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); + + ConsoleManager cm = new ConsoleManager(resources.getString("PkgMgr.Console.Name"), true); + cm.clear(); + MessageConsoleStream mcsError = cm.getMessageConsoleStream(); + MessageConsoleStream mcs = cm.getMessageConsoleStream(); - //PlatformCheckCancelJob cancelJob = new PlatformCheckCancelJob(monitor, project, sbi); - //Thread checkCancelThread = new Thread(cancelJob); - //checkCancelThread.start(); + Thread checkCancelThread = new Thread(cancelJob); + checkCancelThread.start(); - RPMPackageCommander.DistUpgradeRootstrap(rootstrapPath); + RPMPackageCommander.DistUpgradeRootstrap(sbi, targetId, mcs, mcsError); - //cancelJob.setFinishFlag(true); + cancelJob.setFinishFlag(true); monitor.done(); } }); @@ -915,7 +967,7 @@ public class BuildSystemTab { private void genInstalledPkgList() { - String list = RPMPackageCommander.getInstalledPackageListForRootstrap(rootstrapPath); + String list = RPMPackageCommander.getInstalledPackageListForRootstrap(targetId); String[] splitStr = list.split("\n"); // Package list starts at 1 line @@ -933,7 +985,7 @@ public class BuildSystemTab { private void genRemotePkgList() { - String list = RPMPackageCommander.getRemotePackageListForRootstrap(rootstrapPath); + String list = RPMPackageCommander.getRemotePackageListForRootstrap(targetId); String[] splitStr = list.split("\n"); // Package list starts at 5 line @@ -975,7 +1027,7 @@ public class BuildSystemTab { } } - String installedVer = RPMPackageCommander.getPkgInstalledVerForRootstrap(p.getName(), rootstrapPath); + String installedVer = RPMPackageCommander.getPkgInstalledVerForRootstrap(p.getName(), targetId); p.setInstalledVersion(installedVer); p.setCheckColumn(true); p.setPkgType(Package.PKGTYPE.REMOTE); @@ -1004,7 +1056,7 @@ public class BuildSystemTab { pkg.setArch(RPMPackageCommander.getArchForFile(rpmPath)); pkg.setNewVersion(newVer); - String installedVerForRootstrap = RPMPackageCommander.getPkgInstalledVerForRootstrap(pkg.getName(), rootstrapPath); + String installedVerForRootstrap = RPMPackageCommander.getPkgInstalledVerForRootstrap(pkg.getName(), targetId); pkg.setInstalledVersion(installedVerForRootstrap); if ("".equals(newVer)) { @@ -1013,7 +1065,7 @@ public class BuildSystemTab { if (!installedVerForRootstrap.equals(newVer)) { pkg.setInstallInfo(Package.INSTALLINFO.DIFFERENT_VERSION); } else { - if (RPMPackageCommander.pkgInstalledSuccessfullyForRootstrap(pkgName, rootstrapPath)) { + if (RPMPackageCommander.pkgInstalledSuccessfullyForRootstrap(pkgName, targetId)) { pkg.setInstallInfo(Package.INSTALLINFO.INSTALLED); } } diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/PkgMgrUIMessages.properties b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/PkgMgrUIMessages.properties index 822c8bc..8055c02 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/PkgMgrUIMessages.properties +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/PkgMgrUIMessages.properties @@ -9,6 +9,7 @@ PkgMgr.Error.Noselected = - No project is selected, no device is connected, or t PkgMgr.Error.Noselected.Package = No package selected. PkgMgr.Error.Failtransfer.File = Moving the file from %s to %s failed. PkgMgr.Warn.Notset.Proxy = (Warning: HTTP Proxy is not set. (Preferences -> Tizen SDK -> Platform -> HTTP Proxy) +PkgMgr.Info.set.Proxy = (HTTP proxy : %s) PkgMgr.Label.Configuration = Selected configuration: PkgMgr.Label.Connection = Selected connection: PkgMgr.Button.AddRepo = Add diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/RPMPackageDialog.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/RPMPackageDialog.java index ff1a7d7..8b41a54 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/RPMPackageDialog.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/pkgmgr/ui/RPMPackageDialog.java @@ -83,7 +83,6 @@ public class RPMPackageDialog extends Dialog { private boolean enableTargetTab = false; private int tabIndex = 0; private String http_proxy = ""; - private String password = ""; private PlatformRootstrap rootstrap; @@ -126,29 +125,14 @@ public class RPMPackageDialog extends Dialog { IProject _project = CurrentEnabledProject.getCurrentProject(); IConfiguration config = ManagedBuildManager.getBuildInfo( _project ).getDefaultConfiguration(); configuration = config.getName(); - http_proxy = getHttpProxy(_project); - RPMPackageCommander.setHttpProxy(this.http_proxy); + String addr = PreferencesManager.getHttpProxy(); + String port = PreferencesManager.getHttpProxyPort(); + http_proxy = HttpProxyUtil.getHttpProxy(addr, port); + RPMPackageCommander.setHttpProxy(http_proxy); } if (enableTarget) { device = ConnectionPlugin.getDefault().getCurrentDevice(); - } - - password = SudoPasswdManager.getSudoPassword(); - //RPMPackageCommander.setSudoPassword(password); - } - - private String getHttpProxy(IProject project) { - IManagedBuildInfo info = ManagedBuildManager.getBuildInfo( project ) ; - IConfiguration cfg = info.getDefaultConfiguration(); - ICConfigurationDescription cfgDes = ManagedBuildManager.getDescriptionForConfiguration(cfg); - IEnvironmentVariableManager mngr = CCorePlugin.getDefault().getBuildEnvironmentManager(); - - // append "OBS_HTTP_PROXY" - IEnvironmentVariable var = mngr.getVariable("OBS_HTTP_PROXY", cfgDes, true); - if ( var != null ) { - return var.getValue(); } - return ""; } private void setImage(Shell parentShell) { @@ -227,6 +211,7 @@ public class RPMPackageDialog extends Dialog { Composite comp_descrip = new Composite(composite, SWT.NONE); Color whiteColor = new Color(composite.getDisplay(), 255, 255, 255); Color warningColor = composite.getDisplay().getSystemColor(SWT.COLOR_RED); + Color infoColor = composite.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE); comp_descrip.setLayout(new GridLayout(1, false)); GridData comp_descrip_gd = new GridData(GridData.FILL_HORIZONTAL); @@ -243,6 +228,12 @@ public class RPMPackageDialog extends Dialog { warning_label.setText(resources.getString("PkgMgr.Warn.Notset.Proxy")); warning_label.setBackground(whiteColor); warning_label.setForeground(warningColor); + } else { + Label info_label = new Label(comp_descrip, SWT.NONE); + info_label.setText(String.format(resources.getString("PkgMgr.Info.set.Proxy"), http_proxy)); + info_label.setBackground(whiteColor); + info_label.setForeground(infoColor); + } } @@ -260,7 +251,8 @@ public class RPMPackageDialog extends Dialog { if (enableRootstrapTab) { - BuildSystemTab tab = new BuildSystemTab(getShell(), tabFolder, rootstrap); + //BuildSystemTab tab = new BuildSystemTab(getShell(), tabFolder, rootstrap); + BuildSystemTab tab = new BuildSystemTab(getShell(), tabFolder, configuration, getTargetID()); tab.createTab(); } if (enableTargetTab) { diff --git a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/preferences/ui/proxy/HttpProxyUtil.java b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/preferences/ui/proxy/HttpProxyUtil.java index 802bb94..e7b8063 100644 --- a/org.tizen.nativeplatform/src/org/tizen/nativeplatform/preferences/ui/proxy/HttpProxyUtil.java +++ b/org.tizen.nativeplatform/src/org/tizen/nativeplatform/preferences/ui/proxy/HttpProxyUtil.java @@ -13,7 +13,7 @@ public class HttpProxyUtil { } public static String removeHttpProtocol(String s) { - return s.replaceAll(HTTP_PROTOCOL[0], "").replaceAll(HTTP_PROTOCOL[1], ""); + return s.replaceAll(HTTP_PROTOCOL[0], "").replaceAll(HTTP_PROTOCOL[1], "").replaceAll("/", ""); } public static String[] getProxyEnv() { @@ -23,7 +23,7 @@ public class HttpProxyUtil { if (value == null) { return null; } - value = removeHttpProtocol(value); + value = removeHttpProtocol(value); String[] values = value.split(":"); if (values.length == 2) { -- 2.7.4