[Esbox-commits] r1854 - in branches/work_new_pydev: org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties org.maemo.esbox.help/html/concepts org.maemo.esbox.help/html/images org.maemo.esbox.help/html/images/debian org.maemo.esbox.help/html/images/flash org.maemo.esbox.help/html/images/pref_images org.maemo.esbox.help/html/images/profiling org.maemo.esbox.help/html/reference org.maemo.esbox.help/html/tasks org.maemo.esbox.maemosdk.core/conf org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools org.maemo.esbox.maemosdk.ui org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/core org.maemo.esbox.scratchbox.core org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/commands org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/command org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sdk org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/provider org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/preferences org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin org.maemo.esbox.scratchbox.sb2 org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2 org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/provider org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/preferences org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/wizard org.maemo.esbox.scratchbox.tests org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards org.maemo.esbox.tests org.maemo.esbox.tests/src/org/maemo/esbox/tests org.maemo.esbox.tests/src/org/maemo/esbox/tests/common org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp org.maemo.esbox.tests/src/org/maemo/esbox/tests/linux org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol org.maemo.esbox.tests/src/org/maemo/esbox/tests/python org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences org.maemo.esbox.vm/src/org/maemo/esbox/vm/core org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware
raul at garage.maemo.org
raul at garage.maemo.org
Wed Jul 8 14:19:19 EEST 2009
Author: raul
Date: 2009-07-08 14:19:18 +0300 (Wed, 08 Jul 2009)
New Revision: 1854
Added:
branches/work_new_pydev/org.maemo.esbox.help/html/images/debian/dialog-debian-confirm-install.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-menu.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-view.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-menu.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-view.jpg
Removed:
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-menu.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-view.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-menu.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-view.jpg
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling1.jpg
branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling4.jpg
branches/work_new_pydev/org.maemo.esbox.help/html/images/valgrind.png
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCPUMethod.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCompilerPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardNamePage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardPageFactory.java
Modified:
branches/work_new_pydev/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESboxCppBuildConfigurationsPage.java
branches/work_new_pydev/org.maemo.esbox.help/html/concepts/Sbrsh.html
branches/work_new_pydev/org.maemo.esbox.help/html/images/debian/wiz-debian-deploy-package.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/flash/wiz-flash-1b.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/pref_images/prefs-esbox-xserver.png
branches/work_new_pydev/org.maemo.esbox.help/html/images/pref_images/prefs-maemo.png
branches/work_new_pydev/org.maemo.esbox.help/html/reference/FAQ.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/DebianPackage.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/InstallingPCConnectivity.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/SettingPreferences.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingFlasherWizard.html
branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingVirtualMachines.html
branches/work_new_pydev/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml
branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoScriptLauncher.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/XLauncher.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/plugin.xml
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTableViewer.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/BaseEmulatorStartStopRestartControlAction.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/MaemoDropdownMenuAction.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/XServerPreferencePage.java
branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java
branches/work_new_pydev/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/core/ESboxPythonProjectPackageGatherer.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/plugin.xml
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/commands/SimpleCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/AbstractScratchboxSDK.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/BaseScratchboxSDKTarget.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapter.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapterFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/command/ScratchboxCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sdk/ScratchboxSDKFacade.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetCurrentTargetCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetVersionScratchboxCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/RemoveTargetCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/ESboxNokiaBinariesInstallationAdapter.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1EnvironmentProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1PrepareTargetProcessLaunchAdapter.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncher.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncherFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/provider/Scratchbox1SDKProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/preferences/Scratchbox1PreferencesPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/BaseScratchbox1SDKInstallerEngine.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/PreviousInstallationDetectionPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerEngine.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerData.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerEngine.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/DiabloInstallerScriptWorkPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallerEngine.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesPackageInstaller.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/plugin.xml
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/Activator.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/AbstractSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateMaemoRootstrapSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateTargetSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListAvailableMaemoRootstrapsSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListCputranspSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListTargetsCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoRootstrapCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/RemoveMaemoRootstrapSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ShowPathMappingSb2Command.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDKTarget.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2EnvironmentProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncherFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/provider/Scratchbox2SDKProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/preferences/Scratchbox2PreferencesPage.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/wizard/NewScratchbox2TargetWizard.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/build.properties
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1ProcessLauncher.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestScratchboxProjectInfo.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseTest.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncher.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncherFactory.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestListCommands.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchbox2SDK.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchboxFacade.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchEngine.java
branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchTargetsPage.java
branches/work_new_pydev/org.maemo.esbox.tests/asthelper.completions
branches/work_new_pydev/org.maemo.esbox.tests/build.properties
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/common/SboxTestUtils.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectConverter.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectCreator.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/linux/TestFremantleAptBuildPackageMapping.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java
branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/python/TestPythonProjectProperties.java
branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java
branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxMachineController.java
branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferencePage.java
branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxUtils.java
branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareMachineController.java
branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseLaunchableVirtualMachineController.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualBuildMachine.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualMachineController.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/HostInterfaceAddressProvider.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/core/VirtualMachinePreferenceMigrator.java
branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
Log:
merge with trunk 1841
Modified: branches/work_new_pydev/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESboxCppBuildConfigurationsPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESboxCppBuildConfigurationsPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.cpp.project/src/org/maemo/esbox/internal/cpp/project/ui/properties/ESboxCppBuildConfigurationsPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -129,8 +129,10 @@
uiHolder.setVisible(true);
- ICppBuildConfigurationData cppData = (ICppBuildConfigurationData) data;
- table.initializeFrom(cppData.environmentModifierBlock());
+ if (data instanceof ICppBuildConfigurationData) {
+ ICppBuildConfigurationData cppData = (ICppBuildConfigurationData) data;
+ table.initializeFrom(cppData.environmentModifierBlock());
+ }
}
/* (non-Javadoc)
@@ -138,8 +140,10 @@
*/
@Override
protected void applyToConfigurationData(IBuildConfigurationData data) {
- ICppBuildConfigurationData cppData = (ICppBuildConfigurationData) data;
- table.performApply(cppData.environmentModifierBlock());
+ if (data instanceof ICppBuildConfigurationData) {
+ ICppBuildConfigurationData cppData = (ICppBuildConfigurationData) data;
+ table.performApply(cppData.environmentModifierBlock());
+ }
}
/* (non-Javadoc)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/concepts/Sbrsh.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/concepts/Sbrsh.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/concepts/Sbrsh.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -68,7 +68,7 @@
<h3>SBRSH authentication setup</h3>
<p>SBRSH requires a bit of work to set up properly.
- See the <a href="http://pc-connectivity.garage.maemo.org/beta1/documentation_sbrsh.html">PC Connectivity documentation</a>
+ See the <a href="http://pc-connectivity.garage.maemo.org/documentation_sbrsh.html">PC Connectivity documentation</a>
for details.
If you have already added your host IP address or range in the
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/debian/dialog-debian-confirm-install.png (from rev 1853, trunk/org.maemo.esbox.help/html/images/debian/dialog-debian-confirm-install.png)
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/images/debian/wiz-debian-deploy-package.png
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/images/flash/wiz-flash-1b.png
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/images/pref_images/prefs-esbox-xserver.png
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/images/pref_images/prefs-maemo.png
===================================================================
(Binary files differ)
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling (from rev 1853, trunk/org.maemo.esbox.help/html/images/profiling)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-menu.png
===================================================================
(Binary files differ)
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-menu.png (from rev 1853, trunk/org.maemo.esbox.help/html/images/profiling/oprofile-menu.png)
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-view.png
===================================================================
(Binary files differ)
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/oprofile-view.png (from rev 1853, trunk/org.maemo.esbox.help/html/images/profiling/oprofile-view.png)
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-menu.png
===================================================================
(Binary files differ)
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-menu.png (from rev 1853, trunk/org.maemo.esbox.help/html/images/profiling/valgrind-menu.png)
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-view.jpg
===================================================================
(Binary files differ)
Copied: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling/valgrind-view.jpg (from rev 1853, trunk/org.maemo.esbox.help/html/images/profiling/valgrind-view.jpg)
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling1.jpg
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/profiling4.jpg
===================================================================
(Binary files differ)
Deleted: branches/work_new_pydev/org.maemo.esbox.help/html/images/valgrind.png
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/reference/FAQ.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/reference/FAQ.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/reference/FAQ.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -222,7 +222,7 @@
href="https://garage.maemo.org/news/?group_id=192" target="_blank">ESbox Garage Project News page</a>.
</p>
<p>For regular integration releases, see the
- <a href="http://esbox.garage.maemo.org/beta1/releases.html" target="_blank">ESbox releases page</a>
+ <a href="http://esbox.garage.maemo.org/2nd_edition/releases.html" target="_blank">ESbox releases page</a>
</div>
<hr>
<div id="support" dir="LTR">
@@ -237,9 +237,9 @@
projects or workspace must be visible to both Scratchbox and the host.
When Scratchbox is running on a virtual machine, we support this via
Samba sharing from the host to the VM.</p>
-<p>See the <a href="http://maemovmware.garage.maemo.org/beta1">Maemo SDK virtual image page</a>
+<p>See the <a href="http://maemovmware.garage.maemo.org/">Maemo SDK virtual image page</a>
for configured and supported images and the
-<a href="http://esbox.garage.maemo.org/beta1/virtual_machines.html">ESbox virtual machine support documentation</a>.
+<a href="http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html">ESbox virtual machine support documentation</a>.
</div>
<hr>
<div id="ask" dir="LTR">
@@ -273,7 +273,7 @@
<h2>Download and Installation:</h2>
<div id="howtos" dir="LTR">
<h3>Are there complete HowTos for setting up ESbox?</h3>
-<p>Yes, please see the <a href="http://esbox.garage.maemo.org/beta1/installation.html">ESbox installation guide</a>.
+<p>Yes, please see the <a href="http://esbox.garage.maemo.org/2nd_edition/installation.html">ESbox installation guide</a>.
You may install either a fully packaged product or update an existing Eclipse 3.4.2 installation over the Internet.
</p>
</div>
@@ -337,7 +337,7 @@
> Build Machines </em> is the
gateway to configuring this facility. </p>
<p>Please see the
-<a href="http://esbox.garage.maemo.org/beta1/virtual_machines.html">ESbox virtual machine support documentation</a>
+<a href="http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html">ESbox virtual machine support documentation</a>
for all the details.
<hr>
<div id="new-scratchbox-sdk" dir="LTR"><a
@@ -442,7 +442,7 @@
images or available in the <em>host-pc-connectivity</em> package.)</p>
<p><b>All the details
</b>are on the <a
- href="http://pc-connectivity.garage.maemo.org/beta1/">PC connectivity garage project page</a>.</p>
+ href="http://pc-connectivity.garage.maemo.org/">PC connectivity garage project page</a>.</p>
</div>
<hr>
<div id="configure-for-esbox" dir="LTR"><a
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/DebianPackage.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/DebianPackage.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/DebianPackage.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -43,7 +43,7 @@
<li>Select a project, right-click and select <strong>Debian Package</strong>
in the popup menu.</li>
- <li>Click on <strong>Create Debian Package</strong>.
+ <li>Click on <strong>Build Debian Package</strong>.
<p>
<img src="../images/menu-debian-package.png" alt="Debian Package menu" /> </p>
@@ -52,6 +52,11 @@
<li>The package will be built, with results reported to the Console view. If the package is built successfully content of the Debian package will be shown.
<p/>
<img src="../images/debian/dialog-debian-content-reader.png" alt="Debian Package Reader" /> <br clear="left"/>
+ </li>
+ <li>Finally, the user can choose to install the generated Debian package.
+ <p>
+ <img src="../images/debian/dialog-debian-confirm-install.png" alt="Install Debian Package?" /> <br clear="left"/>
+ <p/>
</li>
</ol>
@@ -77,8 +82,7 @@
</li>
<li>Click on <strong>Browse...</strong> to select a package if you haven't deployed it before, or type in the path to the package
if you're planning to build it for the first time in this step.</li>
- <li>Check <strong>Create Debian Package</strong> to build the package.</li>
- <li>Check <strong>Install package on device</strong> to install the package. When enabled, the <strong>Device Address</strong> field is enabled.</li>
+ <li>Check <strong>Install package on device</strong> to install the package. When enabled, the <strong>Device Address</strong> field is enabled.</li>
<li>Click <strong>Finish</strong>.</li>
<li>You may need to provide the root password to perform package management on the device:
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/InstallingPCConnectivity.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/InstallingPCConnectivity.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/InstallingPCConnectivity.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -22,7 +22,7 @@
applet provided by the PC Connectivity project.
</p>
<p>
-See <a href="http://pc-connectivity.garage.maemo.org/beta1">the PC Connectivity home page</a>
+See <a href="http://pc-connectivity.garage.maemo.org/">the PC Connectivity home page</a>
for full instructions.
</p>
</body>
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/ProfilingMaemoApplications.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,71 +1,102 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html lang="en">
<head>
- <meta name="copyright" content="Copyright (c) INdT 2007-2009, (c) Nokia 2008-2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
- <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Profiling C/C++ application</title>
- <link rel="stylesheet" type="text/css" href="../help.css">
- <style type="text/css">
-<!--
-.style1 {font-weight: bold}
--->
- </style>
+ <meta name="copyright"
+ content="Copyright (c) INdT 2007-2009, (c) Nokia 2008-2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page.">
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Profiling C/C++ application</title>
+ <link rel="stylesheet" type="text/css" href="../help.css">
+ <style type="text/css">
+
+ <!--
+ .bold {
+ font-weight: bold;
+ }
+
+ img {
+ margin-top: 10px;
+ margin-bottom: 25px;
+ }
+
+ -->
+
+ </style>
</head>
<body>
-<h2 class="style1">Profiling Maemo Applications</h2>
+ <h2 class="bold">Profiling Maemo Applications</h2>
-<p><span style="font-weight: bold;"></span>Profiling is one of the most
-important techniques available for programmers to discover problems in applications. By profiling an application,
-it becomes immediately apparent where the overwhelming memory and CPU
-burdens exist, and allows you to quickly squash them. ESbox provides
-support for <a href="http://www.valgrind.org/">Valgrind</a> memory profiler and <a href="http://oprofile.sourceforge.net/news/">OProfile</a> system-wide profiler for both C/C++ and Python Projects.</p>
+ <p>
+ <span style="font-weight: bold;"></span>
+ Profiling is one of the most important techniques available for programmers to discover problems
+ in applications. By profiling an application, it becomes immediately apparent where the
+ overwhelming memory and CPU burdens exist, and allows you to quickly squash them. ESbox provides
+ support for <a href="http://www.valgrind.org/">Valgrind</a> memory profiler and
+ <a href="http://oprofile.sourceforge.net/news/">OProfile</a> system-wide profiler for both C/C++
+ and Python Projects.
+ </p>
-<h3>Using Valgrind</h3>
-<p>Valgrind is a framework to build dynamic analyses tools. You can
-use Valgrind to profile your applications. It detects memory management
-(memory leaks, use of uninitialised memory, etc.) and thread bugs.
-However, Valgrind is only supported on X86/Linux, AMD64/Linux,
-PPC32/Linux and PPC64/Linux. To run Valgrind, you have to
-select an X86 Scratchbox target with the tool properly installed.</p>
+ <h3>Using Valgrind</h3>
+ <p>
+ Valgrind is a framework to build dynamic analyses tools. You can use Valgrind to profile your
+ applications. It detects memory management (memory leaks, use of uninitialised memory, etc.) and
+ thread bugs. However, Valgrind is only supported on X86/Linux, AMD64/Linux, PPC32/Linux and
+ PPC64/Linux. To run Valgrind, you have to select an X86 Scratchbox target with the tool
+ properly installed.
+ </p>
-<p>To run Valgrind, right-click on the application (binary for C/C++
-projects or the Python script for Python projects) and select <strong>Run As > Local Valgrind Memory Profiler</strong>.<br>
-<br>
-<img src="../images/valgrind.png" width="509" height="428"><br>
+ <p>
+ To run Valgrind, right-click on the application (binary for C/C++ projects or the Python script
+ for Python projects) and select <strong>Run As > Local Valgrind Memory Profiler</strong>.
+
+ <img src="../images/profiling/valgrind-menu.png">
+ </p>
+
+ <p>
+ The Valgrind tool runs your application on the X86 target and the
+ result is shown in the Valgrind view. All problems found by Valgrind are
+ shown as a tree: problem as parent nodes and details of the problems as
+ children nodes.
+ </p>
+ <p>
+ <img src="../images/profiling/valgrind-view.jpg">
+ </p>
+
+ <h3>Using OProfile</h3>
+ <p>
+ OProfile is a system-wide profiler for Linux systems and can profile all running code.
+ It consists of a kernel driver and a daemon for collecting sample data, and several
+ post-profiling tools for turning data into information. OProfile is supported for ARM/Linux. It's
+ executed on the Internet Tablet in order to obtain a high quality of profiling information. ESbox
+ uses ssh to remotely execute OProfile and collect profiling information. So, it's necessary to
+ properly install the application (OProfile installation information can be found
+ <a href="http://maemo.org/development/tools/doc/chinook/oprofile/">here</a>.).
+ </p>
-<p>The Valgrind tool runs your application on the X86 target and the result is
- shown in the Valgrind view. All problems found by Valgrind are shown as a
- tree: problem as parent nodes and details of the problems as children
- nodes.</p>
-<p><img src="../images/profiling1.jpg"><br>
-</p>
-<p> </p>
-<h3>Using OProfile</h3>
-<p>OProfile is a system-wide profiler for Linux systems and
-can profile all running code. It consists of a kernel driver and a daemon for collecting sample data,
-and several post-profiling tools for turning data into information. OProfile is
-supported for ARM/Linux. It's executed on the Internet Tablet in order to
-obtain a high quality of profiling information. ESbox uses ssh to
-remotely execute OProfile and collect profiling information. So, it's
-necessary to properly install the application (OProfile installation
-information can be found <a href="http://maemo.org/development/tools/doc/chinook/oprofile/">here</a>. ).</p>
+ <p>
+ To run OProfile, in the Project View right-click on the project or application (binary for C/C++
+ projects or the Python script for Python projects) and select <strong>Profile As > Remote
+ OProfile Profiler</strong>. An OProfile launch configuration will be automatically created for
+ you and will be launched.
+ </p>
+
+ <p>
+ <img src="../images/profiling/oprofile-menu.png">
+ </p>
+
+ <p>
+ After OProfile starts, ESbox launches your application on the device. You can control OProfile from
+ designated OProfile view. Controls (Start / Stop, Gather and Clear all) are located on upper-right
+ corner of the view. When the OProfile is stopped the profiling result will be shown in the OProfile View.
+ </p>
-<p>To run OProfile, in the Project View right-click on the project or application
-(binary for C/C++ projects or the Python script for Python projects) and select
-<strong>Run As > OProfile Profiler</strong>. An OProfile launch configuration will be
-automatically created for you and will be launched. If you want to create or edit a launch
-configuration for Oprofile yourself, please see
-<a href="CreateOprofileconfig.html">Creating a OProfile Run Launch Configuration</a>.</p>
+ <p>
+ <img src="../images/profiling/oprofile-view.png">
+ </p>
-<p>After OProfile starts, ESbox launches your application on the device.
- Then a dialog will pop up letting you decide when to stop profiling data collecting.
- After you click OK on the dialog, OProfile data collecting will
- stop and the profiling result will be shown in the OProfile View.</p>
-<br>
-<img src="../images/profiling4.jpg" width="1024" height="783">
-<br>
</body>
</html>
+
+
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/SettingPreferences.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/SettingPreferences.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/SettingPreferences.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -60,9 +60,9 @@
<h2><a name="x_server"></a>X Server</h2>
<p>The X Server page contains commands for starting the X Server.</p>
<p>The server is launched on the host machine.</p>
-<p><b>NOTE:</b> The variable <tt>${PLATFORM_PARAMETERS}</tt> automatically takes specific values for X extension and resolution <br>
- parameters (e.g.: <tt>-screen 800x480x16</tt>, <tt>-extension Composite</tt>) depending on target platform. But you can<br>
- have complete control if you wish, by removing the variable and manually defining the parameters values. </p>
+<p><b>NOTE:</b> The variables <tt>${RESOLUTION}</tt> and <tt>${PLATFORM_PARAMETERS}</tt> automatically take specific values for X extension and resolution <br>
+ parameters (e.g.: <tt>800x480x16</tt>, <tt>-extension Composite</tt>) depending on target platform. But you can have complete control<br>
+ if you wish, by removing the variable and manually defining the parameters values.</p>
<p><img src="../images/pref_images/prefs-esbox-xserver.png" alt="xserver"></p>
<p> </p>
@@ -75,6 +75,17 @@
with commands invoked by various wizards and build commands.</p>
<p>The <em>Path for command log</em> specifies a file to which entries are appended
when <em>Log commands</em> is enabled.</p>
+<p>The <em>Suppress warning when build platform and device platform do not match</em>
+setting disables notifications during a remote launch of a program when it was
+built or developed against a platform which is newer or older than that of the device.
+</p>
+<p>
+Such mismatches may result in programs that fail to launch, due to
+illegal instructions used in newer platforms, or due to libraries which are
+not available in the device.
+</p>
+<p>If you select the checkbox labeled "Do not tell me again", this preference is set.
+</p>
<p></p>
<img src="../images/pref_images/prefs-maemo.png" alt="maemo">
<p/>
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingFlasherWizard.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingFlasherWizard.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingFlasherWizard.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,240 +1,306 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html lang="en">
<head>
- <meta name="copyright" content="Copyright (c) INdT 2007-2009, (c) Nokia 2008-2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
- <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Using the Flasher Wizard</title>
- <link rel="stylesheet" type="text/css" href="../help.css">
+ <meta name="copyright" content="Copyright (c) INdT 2007-2009, (c) Nokia 2008-2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Using the Flasher Wizard</title>
+ <link rel="stylesheet" type="text/css" href="../help.css">
+
+ <style type="text/css">
+ img {
+ margin: 0.7em;
+ }
+
+ img.inline {
+ margin: 0em;
+ }
+
+ h2, h3 {
+ margin-bottom: 1.5em;
+ }
+ </style>
+
</head>
<body>
-<h2>Using the Flasher Wizard</h2>
+ <h2>Using the Flasher Wizard</h2>
+
+ <p>
+ The Maemo IDE Common Architecture includes a wizard which you can use to flash updated
+ kernels and rootstraps onto your Nokia Internet Tablet. You should use this to
+ ensure your tablet software is up-to-date before starting serious development,
+ as bugs may have fixed and features added.
+ </p>
+ <p>
+ The wizard uses the same flasher tools and process as you may have done manually
+ from various <b>maemo.org</b> tutorials, but it provides a friendlier and more
+ easily repeatable UI.
+ </p>
+ <p>
+ All you need to do to prepare is to back up any personal settings and
+ files on your device which may be overwritten by the new image.
+ </p>
+ <p>
+ The wizard is accessible from <strong>File > New > Other > Maemo Installers
+ > Flash Images to Device</strong> or from the
+ <img class="inline" src="../images/flash/flasher-icon.png" /> icon on the toolbar.
+ </p>
+
+ <ul>
+ <li>
+ <p>
+ On the first page, prepare for the flashing session:
+ </p>
+
+ <img src="../images/flash/wiz-flash-1.png" />
+
+ <p>
+ Please read the instructions carefully. Flashing the device will usually overwrite the
+ filesystem, including your home directory. Back up anything important first.
+ </p>
+
+ <p>
+ Note that the flasher binary is currently only available on a Linux host.
+ If you are using Eclipse outside Linux, the current Build Machine will run the
+ flasher, and the USB connection to the device will need to be "attached"
+ to the virtual machine. (The device will show up as "Nokia N8x0 Update Mode".)
+ </p>
+
+ <p>
+ <b>NOTE:</b> QEMU 0.9.x does not (currently) support USB at all, so you cannot use
+ it with the flasher wizard. Also, VirtualBox seems to have problems connecting
+ to the Internet Tablet in the Update Mode. Your best bet is running the flasher
+ natively from Linux or using VMware.
+ </p>
+
+ </li>
+
+ <li>
+ <p>
+ Click <strong>Next</strong>. Select the way you will configure the flashing session.
+ <p/>
+
+ <img src="../images/flash/wiz-flash-1b.png" />
+
+ <ul>
+ <li>
+ In the Basic mode, the wizard will find the newest rootstrap image
+ for the device for you.
+ </li>
-<p>
-The Maemo IDE Common Architecture includes a wizard which you can use to flash updated
-kernels and rootstraps onto your Nokia Internet Tablet. You should use this to
-ensure your tablet software is up-to-date before starting serious development,
-as bugs may have fixed and features added.
-</p>
-<p>
-The wizard uses the same flasher tools and process as you may have done manually
-from various <b>maemo.org</b> tutorials, but it provides a friendlier and more
-easily repeatable UI.
-</p>
-<p>
-All you need to do to prepare is to back up any personal settings and
-files on your device which may be overwritten by the new image.
-</p>
-<p>
-The wizard is accessible from <strong>File > New > Other > Maemo Installers > Flash Images to Device</strong>
-or from the <img src="../images/flash/flasher-icon.png"> icon on the toolbar.
-</p>
+ <li>
+ In the Advanced mode, you can configure a flashing session, fully controlling
+ which images to flash and what flasher options to use.
+ <p>
+ <em>
+ In this release of the Maemo IDE Common Architecture, this mode allows
+ you to run a custom flasher binary, including one on a non-Linux host.
+ </em>
+ </p>
+ </li>
-<ul>
-<li>
-On the first page, prepare for the flashing session:
-<p/>
-<img src="../images/flash/wiz-flash-1.png"/>
-<p>
-Please read the instructions carefully. Flashing the device will usually overwrite the
-filesystem, including your home directory. Back up anything important first.
-</p>
-<p>
-Note that the flasher binary is currently only available on a Linux host.
-If you are using Eclipse outside Linux, the current Build Machine will run the
-flasher, and the USB connection to the device will need to be "attached"
-to the virtual machine. (The device will show up as "Nokia N8x0 Update Mode".)
-</p>
-<p><b>NOTE:</b> QEMU 0.9.x does not (currently) support USB at all, so you cannot use
-it with the flasher wizard. Also, VirtualBox seems to have problems connecting
-to the Internet Tablet in the Update Mode. Your best bet is running the flasher
-natively from Linux or using VMware.
-</p>
-
-</li>
-
-<li>
-Click <strong>Next</strong>.
-Select the way you will configure the flashing session.
-<p/>
-<img src="../images/flash/wiz-flash-1b.png"/>
-<ul>
-<li>In the Basic mode, the wizard will find the newest rootstrap image
-for the device for you.
-</li>
-<li>In the Advanced mode, you can configure a flashing session, fully controlling
-which images to flash and what flasher options to use.
-<p><em>In this release of the Maemo IDE Common Architecture, this mode allows
-you to run a custom
-flasher binary, including one on a non-Linux host.</em></p>
-</li>
-<li>The Predefined tasks lists a convenient task for installing a kernel
-image for Diablo which fixes a bug with USB networking with Windows. (Without
-the fix, Windows will not be able to properly configure the RNDIS driver for
-the Nokia Internet Tablet.)
-<p>See <a href="http://pc-connectivity.garage.maemo.org/beta1/documentation_usbnet.html#Setup_USB_Network_on_Windows">
-the PC Connectivity page</a> for information about setting up Windows networking after using the
-flasher wizard.</p>
-<p>See <a href="https://bugs.maemo.org/show_bug.cgi?id=3243">the original bug report</a> as well.
-</p>
-
-<ul>
- <li>Basic Mode
- <p>If you select the Basic mode, you will see the Product ID page next.
- </li>
- <li>Advanced Mode
- <p>If you select the Advanced mode, you will see the Session configuration page next.
- See below.
- </p>
- </li>
- <li>Predefined Tasks > Update Diablo Kernel
- <p>If you select this task, a predefined session will be used, and you
- will see the Product ID page next.
- </p>
- </li>
-</ul>
-</li>
-</ul>
-</li>
-
-<li>
-Click <strong>Next</strong>.
-On the next page, provide the Product ID (WLAN MAC ID). This will be
-remembered between sessions.
-<p/>
-<img src="../images/flash/wiz-flash-2.png"/>
-</li>
-
-<li>
-Click <strong>Next</strong>.
-Accept the license for using the flasher and device binaries.
-<p/>
-<img src="../images/flash/wiz-flash-3.png"/>
-</li>
-
-<li>
-Click <strong>Next</strong>.
-The wizard will now download the flasher binary (once).
-<p/>
-<img src="../images/flash/dialog-flash-get-flasher.png"/>
-</li>
-
-<li>
-If you have not already done so, ensure the device is connected via USB,
-"attached" to the virtual machine if you use one, and ready to go.
-The <strong>Retry</strong> button will let you start over if you need
-to restart the device or adjust settings.
-<p/>
-<img src="../images/flash/wiz-flash-4.png"/>
-<p/>
-<img src="../images/flash/wiz-flash-4b.png"/>
-</li>
-
-<li>
-Select <strong>Next</strong>. You will see a summary of the changes
-that will be made to the software on the device.
-
-<p/>
-<img src="../images/flash/wiz-flash-5.png"/>
-<p>
-By default,
-the device will be configured for R&D mode and rebooted once the flashing
-is complete. You can configure this behavior in an Advanced session.
-</p>
-</li>
-
-<li>
-Once you hit <strong>Finish</strong>,
-the wizard will download the image(s) and invoke the flasher.
-
-<p/>
-<img src="../images/flash/wiz-flash-6.png"/>
-<p/>
-<img src="../images/flash/wiz-flash-7.png"/>
-<p/>
-<img src="../images/flash/wiz-flash-8.png"/>
-</li>
-</ul>
-
-<h3>Session Configurations</h3>
-
-<p>If you use the <strong>Advanced</strong> configuration mode, you may define
-a set of <strong>sessions</strong> for particular images or options with which
-you flash your device.
-</p>
-<img src="../images/flash/wiz-flash-sessions.png"/>
-
-<ul>
-<li>
-On the <strong>OS Images</strong> tab, select the kinds of images to
-flash.
-<p/>
-<img src="../images/flash/wiz-flash-session-osimage.png"/>
-<ul>
- <li>
- <strong>FIASCO</strong> images are combined images which update all the
- standard boot files, kernel, and filesystems contributing to a platform
- release. This is the standard
- "*.bin" format distributed by Nokia.
- </li>
- <li><strong>kernel</strong> images are the Linux kernel (in zImage format).
- </li>
- <li><strong>initfs</strong>, <strong>rootfs</strong>, <strong>NOLO</strong>,
- <strong>X-Loader</strong>, <strong>NOLO Secondary</strong>, and <strong>2nd</strong>
- images control more advanced portions of the filesystem.
- </li>
-</ul>
-</li>
-<li>
-On the <strong>Modes</strong> tab, select how the flashing will be performed.
-<p/>
-<img src="../images/flash/wiz-flash-session-modes.png">
-<ul>
- <li>
- In <strong>Components which will be flashed</strong>, you can control whether
- selected portions of a FIASCO image will be flashed, or the whole image.
- </li>
- <li>
- <strong>Reboot after flashing</strong> controls whether the device is automatically
- rebooted once flashing is finished.
- </li>
- <li>
- <strong>Enable R&D mode</strong> controls whether the device will allow you
- to log in as <tt>root</tt> using <tt>sudo gainroot</tt> and have more
- control over the package manager in the <strong>Application Manager</strong>.
- If not, you will need third-party tools to enable root access.
- <p>
- <b>NOTE:</b> Mica generally requires R&D mode to be set, since several
- operations like Validating Packages and Installing Debian Packages requires
- root access.
- </li>
-</ul>
-</li>
-
-<li>
-On the <strong>Options</strong> tab, control how the flasher is launched.
-<p/>
-<img src="../images/flash/wiz-flash-session-options.png">
-<ul>
- <li>
- The <strong>Flasher tool location</strong> will override the location
- of the flasher binary. If not set, the flasher will be downloaded from
- the Internet.
- </li>
- <li>
- If <strong>Use from host machine</strong> is set, the flasher binary
- may be used on Windows or Mac OS X with an appropriate port of the flasher.
- </li>
- <li>
- <strong>Additional command line arguments</strong> will be passed on the
- flasher command line, in addition to those derived from settings on other
- tabs.
- </li>
-</ul>
-</li>
-</ul>
-
-<p>
+ <li>
+ <p>
+ The Predefined tasks lists a convenient task for installing a kernel
+ image for Diablo which fixes a bug with USB networking with Windows. (Without
+ the fix, Windows will not be able to properly configure the RNDIS driver for
+ the Nokia Internet Tablet.)
+ </p>
+ <p>
+ See
+ <a href="http://pc-connectivity.garage.maemo.org/beta1/documentation_usbnet.html#Setup_USB_Network_on_Windows">
+ the PC Connectivity page
+ </a>
+ for information about setting up Windows networking after using the
+ flasher wizard.
+ </p>
+ <p>
+ See <a href="https://bugs.maemo.org/show_bug.cgi?id=3243">the original bug report</a> as well.
+ </p>
+
+ <ul>
+ <li>
+ Basic Mode
+ <p>
+ If you select the Basic mode, you will see the Product ID page next.
+ </p>
+ </li>
+
+ <li>
+ Advanced Mode
+ <p>
+ If you select the Advanced mode, you will see the Session configuration page next.
+ See below.
+ </p>
+ </li>
+ <li>
+ Predefined Tasks > Update Diablo Kernel
+ <p>
+ If you select this task, a predefined session will be used, and you
+ will see the Product ID page next.
+ </p>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>
+ Click <strong>Next</strong>. On the next page, provide the Product ID
+ (WLAN MAC ID). This will be remembered between sessions.
+ <p/>
+ <img src="../images/flash/wiz-flash-2.png"/>
+ </li>
+
+ <li>
+ <p>
+ Click <strong>Next</strong>. Accept the license for using the flasher
+ and device binaries.
+ <p/>
+ <img src="../images/flash/wiz-flash-3.png" />
+ </li>
+
+ <li>
+ <p>
+ Click <strong>Next</strong>. The wizard will now download the flasher binary (once).
+ <p/>
+ <img src="../images/flash/dialog-flash-get-flasher.png" />
+ </li>
+
+ <li>
+ <p>
+ If you have not already done so, ensure the device is connected via USB,
+ "attached" to the virtual machine if you use one, and ready to go.
+ The <strong>Retry</strong> button will let you start over if you need
+ to restart the device or adjust settings.
+ <p/>
+
+ <img src="../images/flash/wiz-flash-4.png"/>
+ <br />
+ <img src="../images/flash/wiz-flash-4b.png"/>
+ </li>
+
+ <li>
+ <p>
+ Select <strong>Next</strong>. You will see a summary of the changes
+ that will be made to the software on the device.
+ <p/>
+ <img src="../images/flash/wiz-flash-5.png" />
+ <p>
+ By default,
+ the device will be configured for R&D mode and rebooted once the flashing
+ is complete. You can configure this behavior in an Advanced session.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Once you hit <strong>F
+ model = new FlasherToolModel();inish</strong>, the wizard will download the
+ image(s) and invoke the flasher.
+ <p/>
+
+ <img src="../images/flash/wiz-flash-6.png"/>
+ <img src="../images/flash/wiz-flash-7.png"/>
+ <img src="../images/flash/wiz-flash-8.png"/>
+ </li>
+ </ul>
+
+ <h3>Session Configurations</h3>
+
+ <p>
+ If you use the <strong>Advanced</strong> configuration mode, you may define
+ a set of <strong>sessions</strong> for particular images or options with which
+ you flash your device.
+ </p>
+
+ <img src="../images/flash/wiz-flash-sessions.png" />
+
+ <ul>
+ <li>
+ <p>
+ On the <strong>OS Images</strong> tab, select the kinds of images to flash.
+ <p/>
+ <img src="../images/flash/wiz-flash-session-osimage.png" />
+
+ <ul>
+ <li>
+ <strong>FIASCO</strong> images are combined images which update all the
+ standard boot files, kernel, and filesystems contributing to a platform
+ release. This is the standard "*.bin" format distributed by Nokia.
+ </li>
+
+ <li>
+ <strong>kernel</strong> images are the Linux kernel (in zImage format).
+ </li>
+ <li>
+ <strong>initfs</strong>, <strong>rootfs</strong>, <strong>NOLO</strong>,
+ <strong>X-Loader</strong>, <strong>NOLO Secondary</strong>, and <strong>2nd</strong>
+ images control more advanced portions of the filesystem.
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>
+ On the <strong>Modes</strong> tab, select how the flashing will be performed.
+ <p/>
+ <img src="../images/flash/wiz-flash-session-modes.png" />
+
+ <ul>
+ <li>
+ In <strong>Components which will be flashed</strong>, you can control whether
+ selected portions of a FIASCO image will be flashed, or the whole image.
+ </li>
+
+ <li>
+ <strong>Reboot after flashing</strong> controls whether the device is automatically
+ rebooted once flashing is finished.
+ </li>
+
+ <li>
+ <strong>Enable R&D mode</strong> controls whether the device will allow you
+ to log in as <tt>root</tt> using <tt>sudo gainroot</tt> and have more
+ control over the package manager in the <strong>Application Manager</strong>.
+ If not, you will need third-party tools to enable root access.
+ <p>
+ <b>NOTE:</b> Mica generally requires R&D mode to be set, since several
+ operations like Validating Packages and Installing Debian Packages requires
+ root access.
+ </p>
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>
+ On the <strong>Options</strong> tab, control how the flasher is launched.
+ <p/>
+ <img src="../images/flash/wiz-flash-session-options.png" />
+ <ul>
+ <li>
+ The <strong>Flasher tool location</strong> will override the location
+ of the flasher binary. If not set, the flasher will be downloaded from
+ the Internet.
+ </li>
+
+ <li>
+ If <strong>Use from host machine</strong> is set, the flasher binary
+ may be used on Windows or Mac OS X with an appropriate port of the flasher.
+ </li>
+
+ <li>
+ <strong>Additional command line arguments</strong> will be passed on the
+ flasher command line, in addition to those derived from settings on other
+ tabs.
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+ <br />
+ <br />
</body>
</html>
Modified: branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingVirtualMachines.html
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingVirtualMachines.html 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.help/html/tasks/UsingVirtualMachines.html 2009-07-08 11:19:18 UTC (rev 1854)
@@ -202,8 +202,12 @@
</li>
<li>For VirtualBox, this must match
the configuration established for a machine via VBoxManage before the machine is launched. (See
-<a href="http://maemovmware.garage.maemo.org/beta1/vbox_installers.html">the maemovmware VirtualBox configuration utility</a>, the
-<a href="http://maemovmware.garage.maemo.org/beta1/create_vbox_machine.html#portforwarding">the maemovmware port forwarding instructions</a>, or
+<a href="http://maemovmware.garage.maemo.org/beta1/vbox_installers.html" target="_blank">the maemovmware VirtualBox configuration utility</a>
+(or <a href="http://maemovmware.garage.maemo.org/2nd_edition/vbox_installers.html" target="_blank">here</a> if missing),
+the
+<a href="http://maemovmware.garage.maemo.org/beta1/create_vbox_machine.html#portforwarding" target="_blank">the maemovmware port forwarding instructions</a>
+(or <a href="http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html#portforwarding" target="_blank">here</a> if missing),
+or
the Network Address Translation chapter of the VirtualBox manual.)
</li>
<li>For VMware, use the Virtual Network Editor > NAT>Edit>Port Forwarding... dialog to
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml 2009-07-08 11:19:18 UTC (rev 1854)
@@ -6,9 +6,9 @@
see the org.maemo.mica.common.core.preference_set_provider extension</comment>
<!-- others commands -->
- <entry key="DISPLAY_X_COMMAND_UNIX">Xephyr ${DISPLAY} -host-cursor -dpi 96 -ac ${PLATFORM_PARAMETERS}</entry>
- <entry key="DISPLAY_X_COMMAND_OSX">Xephyr ${DISPLAY} -host-cursor -dpi 96 -ac ${PLATFORM_PARAMETERS}</entry>
- <entry key="DISPLAY_X_COMMAND_WIN32">c:/cygwin/usr/X11R6/bin/Xwin ${DISPLAY} -lesspointer -swcursor -dpi 96 -ac ${PLATFORM_PARAMETERS}</entry>
+ <entry key="DISPLAY_X_COMMAND_UNIX">Xephyr ${DISPLAY} -host-cursor -dpi 96 -ac -screen ${RESOLUTION} ${PLATFORM_PARAMETERS}</entry>
+ <entry key="DISPLAY_X_COMMAND_OSX">Xephyr ${DISPLAY} -host-cursor -dpi 96 -ac -screen ${RESOLUTION} ${PLATFORM_PARAMETERS}</entry>
+ <entry key="DISPLAY_X_COMMAND_WIN32">c:/cygwin/usr/X11R6/bin/Xwin ${DISPLAY} -lesspointer -swcursor -dpi 96 -ac -screen 0 ${RESOLUTION} ${PLATFORM_PARAMETERS}</entry>
<!-- this is initialized dynamically <entry key="DISPLAY_X_COMMAND"></entry> -->
<!-- others commands -->
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/MaemoPreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,13 +11,12 @@
package org.maemo.esbox.internal.api.maemosdk.core;
-import org.eclipse.jface.preference.IPreferenceStore;
+import java.util.Properties;
+
import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
-import java.util.Properties;
-
/**
* To migrate preferences, we pick an
* OS-specific initial value for the X server related commands.
@@ -25,7 +24,7 @@
* @author eswartz
*
*/
-public class MaemoPreferenceMigrator implements IPreferenceMigrator {
+public class MaemoPreferenceMigrator extends PreferenceMigratorAdapter {
public void adjustDefaultSettings(Properties newPropertyDefaults) {
// adjust any environment-dependent defaults
@@ -36,11 +35,4 @@
MaemoPreferenceConstants.X_PATH);
}
-
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
-
- }
-
}
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/AfSbInitMaemoLauncherAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -21,11 +21,10 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.console.MessageConsole;
-import org.maemo.esbox.internal.maemosdk.core.Activator;
import org.maemo.esbox.maemosdk.core.MaemoEnvironmentUtils;
import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
-import org.maemo.mica.common.core.ErrorLogger;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.console.ConsoleStreamMonitor;
import org.maemo.mica.common.core.console.CoreConsoleManager;
@@ -37,7 +36,7 @@
import org.maemo.mica.common.core.process.IProcessLauncher;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.process.IStreamMonitor;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.process.StreamLineMonitorAdapter;
import org.maemo.mica.common.core.sdk.ISDKTarget;
@@ -174,48 +173,63 @@
.getProcessLauncherFactory();
IEnvironmentModifierBlock envBlock = processLauncherFactory
- .defaultEnvironmentModifierBlock();
+ .getDefaultEnvironmentModifierBlock();
MaemoEnvironmentUtils.defineEmulatorXDisplayVariable(
sdkTarget.getMachine(), envBlock);
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(processLauncherFactory, null,
- CommandLineArguments.createFromCommandLine(maemoCommand),
- envBlock);
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(
+ ProcessLauncherParameters.create(
+ CommandLineArguments.createFromCommandLine(maemoCommand),
+ envBlock));
// spit the consumed output to the console
- MessageConsole console = CoreConsoleManager.getInstance().getConsole(true,
- sdkTarget, MessageFormat.format(
- "Running Maemo command ({0})",
+ final MessageConsole console = CoreConsoleManager.getInstance().getConsole(
+ true, sdkTarget, MessageFormat.format(
+ "Running Maemo AF command ({0})",
params.get(0)));
- IStreamMonitor consoleMonitor = new ConsoleStreamMonitor(console);
+ // be sure to show the console when we're done
+ ConsoleStreamMonitor consoleMonitor = new ConsoleStreamMonitor(console) {
+ /* (non-Javadoc)
+ * @see org.maemo.mica.common.core.console.ConsoleStreamMonitor#processExited(int)
+ */
+ @Override
+ public void processExited(int exitCode) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ console.activate();
+ }
+ });
+ }
+ };
+
+ processLauncher.queueStreamMonitor(consoleMonitor);
+
+ // And watch for errors and termination
IStreamMonitor errorMonitor = new StreamLineMonitorAdapter() {
/* (non-Javadoc)
* @see org.maemo.mica.common.core.process.IStreamLineMonitor#handleLine(java.lang.String, boolean)
*/
public void handleLine(String text, boolean errorStream)
throws InterruptedException {
- if (text.contains("ERROR:")) {
- ErrorLogger errorLogger = Activator.getErrorLogger();
- errorLogger.logAndShowError("Error launching maemo",
- new MicaException(text));
- throw new InterruptedException();
- }
- else if (text.contains("Starting Hildon Desktop") || text.contains("hildon-desktop")) {
+ // REMOVED: error checking -- there are so many spurious
+ // errors that it's useless to report them
+
+ if (text.contains("Starting") &&
+ (text.contains("Hildon Desktop") || text.contains("hildon-desktop"))) {
// we need to stop after this or else the launch
// just hangs forever (waiting for input?)... dunno why.
// This happened at least as far back as 2.0.0M1 but
// there was no Job tracking, so we didn't notice.
- Job job = new Job("Finishing Maemo startup") {
+ Job job = new Job("Finishing Maemo AF startup") {
@Override
protected IStatus run(IProgressMonitor xmonitor) {
try {
- Thread.sleep(5000);
+ Thread.sleep(30000);
} catch (InterruptedException e) {
}
- monitor.setCanceled(true);
+ procMonitor.terminate();
return Status.OK_STATUS;
}
@@ -228,7 +242,7 @@
};
ProcessLauncherUtils.launchAndMonitorStandardStreams(processLauncher,
- new IStreamMonitor[] { consoleMonitor, errorMonitor },
+ new IStreamMonitor[] { errorMonitor },
monitor);
}
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoScriptLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoScriptLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/MaemoScriptLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,6 +20,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.maemo.esbox.internal.maemosdk.core.Activator;
import org.maemo.mica.common.core.MicaException;
@@ -70,8 +71,11 @@
if (sdkTarget != null) {
IMaemoLauncherAdapter launcher = (IMaemoLauncherAdapter)sdkTarget.getAdapter(IMaemoLauncherAdapter.class);
- if (launcher != null && launcher.isMaemoRunning())
- throw new MicaException("Maemo is still running. Stop Maemo first.");
+ if (launcher != null && launcher.isMaemoRunning()) {
+ // usability
+ //throw new MicaException("Maemo Application Framework is still running. Stop Maemo first.");
+ launcher.stopMaemo(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
+ }
}
XLauncher.getInstance().stopX(sdkTarget, monitor);
}
@@ -83,13 +87,13 @@
try {
return launcher.isMaemoRunning();
} catch (MicaException e) {
- Activator.getErrorLogger().logError("Cannot test maemo status",
+ Activator.getErrorLogger().logError("Cannot test Maemo AF status",
e);
return false;
}
} else {
Activator.getErrorLogger().logError(
- "I do not know how to test Maemo for " + sdkTarget.getDisplayName(), null);
+ "I do not know how to test Maemo AF for " + sdkTarget.getDisplayName(), null);
return false;
}
}
@@ -102,7 +106,7 @@
if (launcher != null) {
launcher.stopMaemo(monitor);
} else {
- throw new MicaException("I do not know how to stop Maemo for " + sdkTarget.getDisplayName());
+ throw new MicaException("I do not know how to stop Maemo AF for " + sdkTarget.getDisplayName());
}
}
@@ -116,7 +120,7 @@
if (launcher != null) {
launcher.startMaemo(monitor);
} else {
- throw new MicaException("I do not know how to start Maemo for " + sdkTarget.getDisplayName());
+ throw new MicaException("I do not know how to start Maemo AF for " + sdkTarget.getDisplayName());
}
}
@@ -179,7 +183,7 @@
if (target == null)
throw new IllegalArgumentException();
- Job job = new Job("Starting maemo") {
+ Job job = new Job("Starting Maemo AF") {
@Override
protected IStatus run(IProgressMonitor monitor) {
@@ -205,7 +209,7 @@
if (target == null)
throw new IllegalArgumentException();
- Job job = new Job("Restarting maemo") {
+ Job job = new Job("Restarting Maemo AF") {
@Override
protected IStatus run(IProgressMonitor monitor) {
@@ -229,7 +233,7 @@
if (target == null)
throw new IllegalArgumentException();
- Job job = new Job("Stopping maemo") {
+ Job job = new Job("Stopping Maemo AF") {
@Override
protected IStatus run(IProgressMonitor monitor) {
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/XLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/XLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/internal/api/maemosdk/core/tools/XLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -14,20 +14,19 @@
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.console.MessageConsole;
import org.maemo.esbox.internal.maemosdk.core.Activator;
import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.Policy;
-import org.maemo.mica.common.core.console.ConsoleStreamMonitor;
-import org.maemo.mica.common.core.console.CoreConsoleManager;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineRegistry;
+import org.maemo.mica.common.core.machine.MachineUtils;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
import org.maemo.mica.common.core.preferences.IPreferenceProvider;
import org.maemo.mica.common.core.process.*;
import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
import java.net.Socket;
import java.text.MessageFormat;
@@ -42,17 +41,22 @@
*/
public class XLauncher {
- private static final String FREMANTLE_PLATFORM_NAME = "fremantle";
+ //Default X Server PLATFORM_PARAMETERS parameter for the targets, except for FREMANTLE.
+ private static final String DEFAULT_X_SERVER_PLATFORM_PARAMETERS = "-extension Composite";
+
+ //Default X Server RESOLUTION parameter for the targets, except for FREMANTLE.
+ private static final String DEFAULT_X_SERVER_RESOLUTION = "800x480x16";
- //Default X Server parameter for the targets, except for FREMANTLE.
- private static final String DEFAULT_X_SERVER_PLATFORM_PARAMETERS = "-screen 800x480x16 -extension Composite";
-
- /* FREMANTLE specific X Server parameter.
+ /* FREMANTLE specific X Server PLATFORM_PARAMETERS parameter.
* Xephyr X-server now requires the composite extension where it
* used to be disabled explicitly when starting the server.
*/
- private static final String FREMANTLE_X_SERVER_PLATFORM_PARAMETERS = "-screen 800x480x16 -kb";
+ private static final String FREMANTLE_X_SERVER_PLATFORM_PARAMETERS = "-kb";
+ /* FREMANTLE specific X Server RESOLUTION parameter.
+ */
+ private static final String FREMANTLE_X_SERVER_RESOLUTION = "800x480x16";
+
/**
* @author eswartz
*
@@ -115,10 +119,9 @@
try {
Thread.sleep(100);
} catch (InterruptedException e) {
- return Policy.getCancelStatus(Activator.getDefault());
}
- if (!processMonitor.isAlive()) {
+ if (processMonitor.isCompleted()) {
return Activator.createErrorStatus(
"X server did not launch; check the Console.",
null);
@@ -281,25 +284,23 @@
throw new MicaException("Cannot find local machine");
IProcessLauncherFactory factory = localMachine.getProcessLauncherFactory();
- IEnvironmentModifierBlock envBlock = null;
+ IEnvironmentModifierBlock envBlock = factory.getDefaultEnvironmentModifierBlock();
+ ProcessLauncherParameters params = ProcessLauncherParameters.create(cmdLine, envBlock);
+
String path = prefProvider.getPreferenceValue(MaemoPreferenceConstants.X_PATH);
if (path != null && path.length() > 0) {
- envBlock = ProcessLauncherUtils.addToPATH(localMachine, factory, path, true);
+ MachineUtils.adjustLaunchParametersForPath(
+ localMachine, factory, params, path);
}
// launch command
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(factory,
- null,
- cmdLine,
- envBlock);
-
- MessageConsole console = CoreConsoleManager.getInstance().getConsole(
+ IProcessLauncher processLauncher = factory.createProcessLauncher(
+ params);
+ ProcessLauncherUtils.queueConsoleMonitor(processLauncher,
true, null, "Starting X Server");
+ processLauncher.createProcess(null);
- processLauncher.queueStreamMonitor(new ConsoleStreamMonitor(console));
- processLauncher.createProcess();
-
IProcessMonitor procMon = processLauncher.createProcessMonitor();
procMon.runNonBlocking();
@@ -354,6 +355,10 @@
//Defining specific platform parameters, e.g. Composite extension for Fremantle.
command = command.replaceAll("\\$\\{PLATFORM_PARAMETERS\\}",
getPlatformParameters(prefProvider));
+
+ //Defining specific platform RESOLUTION.
+ command = command.replaceAll("\\$\\{RESOLUTION\\}",
+ getResolutionParameter(prefProvider));
return command;
}
@@ -372,13 +377,35 @@
sdkTarget = (ISDKTarget) prefProvider;
if (sdkTarget != null
- && sdkTarget.getPlatform().getName().toLowerCase().matches(
- FREMANTLE_PLATFORM_NAME)) {
+ && sdkTarget.getPlatform().getVersion().compareTo(
+ IMaemoSDKPlatform.FREMANTLE.getVersion()) >= 0) {
return FREMANTLE_X_SERVER_PLATFORM_PARAMETERS;
}
return DEFAULT_X_SERVER_PLATFORM_PARAMETERS;
}
+ /**
+ * Defines the value for variable {RESOLUTION} present at X Server
+ * initialization command line.
+ *
+ * @param prefProvider
+ * The prefProvider. If it is not an instance of
+ * {@link ISDKTarget} the default value is returned.
+ * @return the value for variable {RESOLUTION}.
+ */
+ public String getResolutionParameter(IPreferenceProvider prefProvider) {
+ ISDKTarget sdkTarget = null;
+ if (prefProvider instanceof ISDKTarget)
+ sdkTarget = (ISDKTarget) prefProvider;
+
+ if (sdkTarget != null
+ && sdkTarget.getPlatform().getVersion().compareTo(
+ IMaemoSDKPlatform.FREMANTLE.getVersion()) >= 0) {
+ return FREMANTLE_X_SERVER_RESOLUTION;
+ }
+ return DEFAULT_X_SERVER_RESOLUTION;
+ }
+
private String getDisplayValue(IPreferenceProvider prefProvider) {
String value = prefProvider.getPreferenceValue(MaemoPreferenceConstants.X_DISPLAY);
if (value.length() > 0)
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/plugin.xml
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/plugin.xml 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/plugin.xml 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,7 +17,7 @@
name="Gazpacho"
category="org.maemo.esbox.ui.preferenceCategory.esbox"
class="org.maemo.esbox.internal.maemosdk.ui.preferences.GazpachoPreferencePage"
- id="org.maemo.mica.maemosdk.ui.preferencePage.gazpacho">
+ id="org.maemo.maemo.maemosdk.ui.preferencePage.gazpacho">
</page>
-->
@@ -41,23 +41,29 @@
<extension
point="org.eclipse.ui.actionSets">
<actionSet
- id="org.maemo.mica.maemosdk.ui.toolbaraction"
+ id="org.maemo.maemo.maemosdk.ui.toolbaraction"
label="Toolbar Action"
visible="true">
<menu
- id="org.maemo.mica.maemosdk.ui.xmenu"
+ id="org.maemo.maemo.maemosdk.ui.xmenu"
label="X Menu">
<separator
name="esboxgroup">
</separator>
</menu>
+ <menu
+ id="org.maemo.maemo.maemosdk.ui.maemo"
+ label="Maemo AF Menu">
+ <separator
+ name="esboxgroup">
+ </separator>
+ </menu>
<action
class="org.maemo.esbox.internal.maemosdk.ui.actions.XDropdownMenuAction"
enablesFor="*"
icon="icons/full/etool16/xservermenu_misc.png"
- id="org.maemo.mica.maemosdk.ui.action.xserver"
+ id="org.maemo.esbox.maemosdk.ui.action.xserver"
label="X Server"
- state="true"
style="pulldown"
toolbarPath="esboxgroup"
tooltip="Start X Server">
@@ -66,12 +72,11 @@
class="org.maemo.esbox.internal.maemosdk.ui.actions.MaemoDropdownMenuAction"
enablesFor="*"
icon="icons/full/etool16/maemomenu_misc.png"
- id="org.maemo.mica.maemosdk.ui.action.maemo"
- label="%action.label.1"
- state="true"
+ id="org.maemo.esbox.maemosdk.ui.action.maemo"
+ label="Maemo AF"
style="pulldown"
toolbarPath="esboxgroup"
- tooltip="Start Maemo">
+ tooltip="Start Maemo Application Framework (and X if needed)">
</action>
</actionSet>
</extension>
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -57,8 +57,8 @@
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineManager;
import org.maemo.mica.common.core.machine.MachineRegistry;
-import org.maemo.mica.common.core.sdk.SDKFactory;
import org.maemo.mica.common.ui.dialogs.StyledTextProgressDialog;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.common.ui.utils.PixelConverter;
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
@@ -335,8 +335,8 @@
boolean changed = false;
// don't trigger refresh job on old machine when checking things out
- SDKFactory.getInstance().cancelRefresh();
- SDKFactory.getInstance().lock();
+ SDKManagerInternal.getInstance().cancelRefresh();
+ SDKManagerInternal.getInstance().lock();
try {
if (selectedMachine != null) {
@@ -372,7 +372,7 @@
}
} finally {
// now allow the refresh
- SDKFactory.getInstance().unlock();
+ SDKManagerInternal.getInstance().unlock();
}
if (selectedMachine != null && !MachineManager.getInstance().isActive(selectedMachine)) {
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTableViewer.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTableViewer.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTableViewer.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -37,6 +37,7 @@
import org.maemo.mica.common.core.filesystem.EShareType;
import org.maemo.mica.common.core.filesystem.ISharedFolder;
import org.maemo.mica.common.ui.TextAndDialogCellEditor;
+import org.maemo.mica.common.ui.dialogs.DirectoryDialogHelper;
import org.maemo.mica.internal.api.common.ui.ViewerTooltipSupport;
/**
@@ -100,7 +101,8 @@
protected Object openDialogBox(Control cellEditorWindow) {
DirectoryDialog dialog = new DirectoryDialog(cellEditorWindow.getShell());
Object current = getValue();
- dialog.setFilterPath(current instanceof String
+ DirectoryDialogHelper.setFilterPathToExistingDirectory(dialog,
+ current instanceof String
? new Path((String)current).toOSString() : Path.ROOT.toOSString());
return dialog.open();
}
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -45,12 +45,13 @@
import org.maemo.mica.common.core.process.IProcessLauncher;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.process.IStreamMonitor;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.ui.IProgressReporter;
import org.maemo.mica.common.core.ui.ProgressReporterStreamTextMonitor;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
/**
* This class validates that a machine is properly configured.
@@ -150,11 +151,13 @@
step(monitor, "Testing process launching");
// check the process launcher
+ ProcessLauncherParameters params = ProcessLauncherParameters.create(
+ "ls", machine.getUserHome().toPortableString());
IProcessLauncherFactory processLauncherFactory = machine.getProcessLauncherFactory();
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(processLauncherFactory,
- "ls " + machine.getUserHome());
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(params);
- reporter.logInfo(MessageFormat.format("Launching ''{0}''", CommandLineArguments.toCommandLine(processLauncher.getLaunchCommandArguments())));
+ reporter.logInfo(MessageFormat.format("Launching ''{0}''",
+ CommandLineArguments.toCommandLine(params.getCommandLine())));
try {
ProcessLauncherUtils.launchAndMonitorStandardStreams(processLauncher,
new IStreamMonitor[] {
@@ -367,7 +370,7 @@
monitor.beginTask("", 2);
step(monitor, "Testing visibility of shared folders in installed targets");
- SDKFactory.getInstance().waitForRefreshComplete(new SubProgressMonitor(monitor, 1));
+ SDKManager.getInstance().waitForRefreshComplete(new SubProgressMonitor(monitor, 1));
ISDKTarget[] sdkTargets = getMachineProvidedTargets();
@@ -380,8 +383,7 @@
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
- SDKFactory.getInstance().refresh(true);
- SDKFactory.getInstance().waitForRefreshComplete(monitor);
+ SDKManagerInternal.getInstance().refreshFull(monitor);
}
});
@@ -425,7 +427,7 @@
*/
private ISDKTarget[] getMachineProvidedTargets() {
List<ISDKTarget> sdktargetsList = new ArrayList<ISDKTarget>(Arrays.asList(
- SDKFactory.getInstance().getAllSDKTargets()));
+ SDKManager.getInstance().getAllSDKTargets()));
for (Iterator<ISDKTarget> iter = sdktargetsList.iterator(); iter.hasNext(); ) {
if (!iter.next().getSDK().getMachine().equals(machine))
iter.remove();
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/BaseEmulatorStartStopRestartControlAction.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/BaseEmulatorStartStopRestartControlAction.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/BaseEmulatorStartStopRestartControlAction.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -26,8 +26,8 @@
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
import org.maemo.esbox.internal.maemosdk.ui.UIActivator;
-import org.maemo.mica.common.core.GeneralUtils;
import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.WorkspaceUtils;
import org.maemo.mica.common.core.sdk.BuildMachineHostedTargetFilter;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.project.core.ProjectManager;
@@ -126,7 +126,7 @@
// The command must adapt to the current project / editor / etc.
// or else we will not launch the proper version of maemo
- IResource resource = GeneralUtils.getResourceFromSelection(selection);
+ IResource resource = WorkspaceUtils.getResourceFromSelection(selection);
// XXX: don't ask for ISDKTarget here since it can hang
this.selectedProject = null;
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/MaemoDropdownMenuAction.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/MaemoDropdownMenuAction.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/actions/MaemoDropdownMenuAction.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -40,8 +40,8 @@
return;
if (MaemoScriptLauncher.getInstance().isMaemoStarted(target)) {
MessageDialog.openInformation(null,
- "Maemo is running",
- "The Maemo framework appears to be already running.\n\nIf you do not see it, you may need to restart it or wait for its startup to complete.");
+ "Maemo AF is running",
+ "The Maemo Application Framework appears to be already running.\n\nIf you do not see it, you may need to restart it or wait for its startup to complete.");
return;
}
Job job = MaemoScriptLauncher.getInstance().createStartMaemoJob(target);
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/XServerPreferencePage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/XServerPreferencePage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/XServerPreferencePage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -40,7 +40,7 @@
setPreferenceStore(MaemoPreferenceConstants.getPreferenceStore());
setDescription("Preferences for running X:\n\n"
+ "(The X server is launched on the host machine, so use a command syntax and display appropriate to the host. " +
- "The variable ${PLATFORM_PARAMETERS} automatically takes specific values for X extension and resolution " +
+ "The variables ${RESOLUTION} and ${PLATFORM_PARAMETERS} automatically take specific values for X extension and resolution " +
"parameters, depending on target platform.)\n");
}
Modified: branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/wizards/ESboxImportDebianSourcePackageProjectWizard.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,6 +13,7 @@
import org.maemo.mica.common.core.sdk.BuildMachineHostedTargetFilter;
import org.maemo.mica.common.core.sdk.IBuildTargetFilter;
+import org.maemo.mica.internal.api.common.project.core.creator.ProjectConfigHandler;
import org.maemo.mica.internal.api.linux.packages.ui.importwizard.AbstractImportDebianSourcePackageWizard;
/**
@@ -37,4 +38,17 @@
protected IBuildTargetFilter createBuildTargetFilter() {
return new BuildMachineHostedTargetFilter();
}
+
+ /* (non-Javadoc)
+ * @see org.maemo.mica.internal.api.linux.packages.ui.importwizard.AbstractImportDebianSourcePackageWizard#configureProjectConfigHandler(org.maemo.mica.internal.api.common.project.core.creator.ProjectConfigHandler)
+ */
+ @Override
+ protected void configureProjectConfigHandler(
+ ProjectConfigHandler configHandler) {
+ // HACK: this should be inside the respective *.project plugin (but that would make two wizards :p)
+ if (configHandler.getProjectType().getId().contains("cpp"))
+ configHandler.addExtraNatureId("org.maemo.esbox.cpp.project.cppNature");
+ else if (configHandler.getProjectType().getId().contains("python"))
+ configHandler.addExtraNatureId("org.maemo.esbox.python.project.pythonNature");
+ }
}
Modified: branches/work_new_pydev/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/core/ESboxPythonProjectPackageGatherer.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/core/ESboxPythonProjectPackageGatherer.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.python.project/src/org/maemo/esbox/internal/python/project/core/ESboxPythonProjectPackageGatherer.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -47,6 +47,8 @@
info.getSystemPackages().add("maemo-python-env");
else
info.getSystemPackages().add("maemo-python-device-env");
+
+ info.getSystemPackages().add("python2.5-distutils");
}
return info;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/plugin.xml
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/plugin.xml 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/plugin.xml 2009-07-08 11:19:18 UTC (rev 1854)
@@ -18,7 +18,7 @@
<preferenceSetProvider
defaultsXMLFile="conf/sb_prefs.xml"
preferenceConstantsClass="org.maemo.esbox.scratchbox.core.SBPreferenceConstants"
- preferenceMigratorClass="org.maemo.mica.internal.api.common.core.PreferenceMigratorAdapter"
+ preferenceMigratorClass="org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter"
preferenceStoreBundle="org.maemo.esbox.scratchbox.core"
version="20">
</preferenceSetProvider>
@@ -63,7 +63,7 @@
adaptableType="org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget"
class="org.maemo.esbox.internal.scratchbox.adapters.ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory">
<adapter
- type="org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter">
+ type="org.maemo.mica.common.core.adapters.IExecutionEnvironmentProviderAdapter">
</adapter>
</factory>
</extension>
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/OldStyleProjectProperties.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -24,7 +24,7 @@
import org.maemo.mica.common.core.execEnv.IExecutionEnvironment;
import org.maemo.mica.common.core.sdk.ISDK;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.internal.api.common.project.core.IPersistentPropertyAccess;
import org.maemo.mica.internal.api.common.project.core.model.AbstractBuildConfiguration;
import org.maemo.mica.internal.api.maemosdk.core.MaemoExecutionEnvironmentIds;
@@ -137,7 +137,7 @@
version = "1";
}
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
List<IScratchboxSDK> sboxSDKs = ScratchboxSDKFacade.getInstance()
.getAllScratchboxSDKs();
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/commands/SimpleCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/commands/SimpleCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/commands/SimpleCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,15 +11,15 @@
*******************************************************************************/
package org.maemo.esbox.internal.api.scratchbox.core.commands;
+import java.util.List;
+
import org.maemo.esbox.scratchbox.core.command.ScratchboxCommand;
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
-import org.maemo.mica.common.core.*;
+import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncher;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
-import java.util.List;
-
/**
* Execute a simple command inside Scratchbox.
*
@@ -44,10 +44,9 @@
throw new ScratchboxInvalidParameterException(
"empty parameter list");
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(commandAbstractor
- .getProcessLauncherFactory(), null, params);
- Process process = processLauncher.createProcess();
+ IProcessLauncher processLauncher = commandAbstractor.getProcessLauncherFactory().
+ createProcessLauncher(ProcessLauncherParameters.create(params));
+ Process process = processLauncher.createProcess(null);
List<String> commandResult = getLineInputFromProcessAndWait(process,
true, 0);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/execEnv/MaemoExecutionEnvironmentHandler.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -104,7 +104,7 @@
public void run() {
doLaunch[0] = MessageDialog.openQuestion(shell, "Launch Maemo?",
- "The Maemo Application Framework is not running or is not showing in an X server.\n\nLaunch it now?");
+ "The Maemo Application Framework does not seem to be running.\n\nLaunch it now?");
}
});
@@ -116,7 +116,10 @@
// As long as X runs, any process can be re-windowed to the new
// window manager, and we don't really have to wait for it here.
Display display = Display.getCurrent();
- for (int timeout = 0; timeout < 10 * 1000; ) {
+ for (int timeout = 0; timeout < 15 * 1000; ) {
+ if (job.getResult() != null)
+ break;
+
if (display != null) {
while (display.readAndDispatch()) ;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/AbstractScratchboxSDK.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/AbstractScratchboxSDK.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/AbstractScratchboxSDK.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,7 +11,6 @@
package org.maemo.esbox.internal.api.scratchbox.core.sdk;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.internal.api.scratchbox.core.commands.SDKCommandAbstractor;
import org.maemo.esbox.internal.api.scratchbox.core.commands.sbrsh.*;
@@ -21,6 +20,7 @@
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.filesystem.IFileSystemAccess;
import org.maemo.mica.common.core.machine.IMachine;
+import org.maemo.mica.common.core.machine.MachineUtils;
import org.maemo.mica.common.core.preferences.IPreferenceProvider;
import org.maemo.mica.common.core.process.*;
import org.maemo.mica.internal.api.common.core.sdk.BaseSDK;
@@ -41,20 +41,13 @@
protected static final String TARGETS_KEY = "targets";
protected static final String VERSION_KEY = "version";
- public AbstractScratchboxSDK(IMachine machine, IPath location, String version, String name,
- int versionNumber) {
- super(machine, version, name);
+ public AbstractScratchboxSDK(IMachine machine, IPath location, String name, int versionNumber) {
+ super(machine, null, name);
if (location == null)
throw new IllegalArgumentException();
this.installLocation = location;
this.versionNumberKey = versionNumber;
setCache(ScratchboxCacheUtils.getCache(this));
-
- version = (String) getCache().get(VERSION_KEY, String.class);
- if (version == null) {
- version = "";
- }
- setVersion(version);
}
/*
@@ -97,6 +90,20 @@
return true;
}
+ @Override
+ public synchronized String getVersion() {
+ // not set until #realize
+ String version = super.getVersion();
+ if (version == null) {
+ version = (String) getCache().get(VERSION_KEY, String.class);
+ if (version == null) {
+ version = "";
+ }
+ setVersion(version);
+ }
+ return version;
+ }
+
/* (non-Javadoc)
* @see org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK#getInstallLocation()
*/
@@ -257,39 +264,15 @@
.getProcessLauncherFactory();
IProcessLauncherFactory wrappedLauncherFactory = new IProcessLauncherFactory() {
- public IProcessLauncher createProcessLauncher(
- IPath workingDirectory, List<String> commandLine,
- IEnvironmentModifierBlock envBlock) {
-
- if (commandLine.size() > 0) {
- // optimize this somewhat... changing the environment means launching
- // an extra shell and making an uglier command line
- IPath executablePath = new Path(toolsPath).append(commandLine.get(0));
- if (getMachine().getFileSystemAccess().getFileStore(executablePath).fetchInfo().exists()) {
- commandLine.set(0, executablePath.toPortableString());
- } else {
- envBlock = ProcessLauncherUtils.addToPATH(
- getMachine(),
- getRawEnvironment(),
- envBlock != null ? envBlock
- : defaultEnvironmentModifierBlock(),
- toolsPath, true);
- }
- }
-
- return launcherFactory.createProcessLauncher(
- workingDirectory, commandLine, envBlock);
+ public IProcessLauncher createProcessLauncher(ProcessLauncherParameters params) {
+ MachineUtils.adjustLaunchParametersForPath(getMachine(),
+ launcherFactory, params, toolsPath);
+ return launcherFactory.createProcessLauncher(params);
}
- public IEnvironmentModifierBlock defaultEnvironmentModifierBlock() {
- return launcherFactory
- .defaultEnvironmentModifierBlock();
+ public IEnvironmentModifierBlock getDefaultEnvironmentModifierBlock() {
+ return launcherFactory.getDefaultEnvironmentModifierBlock();
}
-
- public Properties getRawEnvironment() {
- return launcherFactory.getRawEnvironment();
- }
-
};
return wrappedLauncherFactory;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/BaseScratchboxSDKTarget.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/BaseScratchboxSDKTarget.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/api/scratchbox/core/sdk/BaseScratchboxSDKTarget.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -15,7 +15,7 @@
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.mica.common.core.sdk.*;
import org.maemo.mica.internal.api.common.core.sdk.BaseSDKTarget;
-import org.maemo.mica.internal.maemosdk.core.adapters.MaemoRunStandaloneSupportAdapterFactory;
+import org.maemo.mica.internal.api.maemosdk.core.MaemoRunStandaloneSupportAdapterFactory;
/**
* Common base for (maemo) scratchbox SDK targets
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -19,7 +19,10 @@
import org.maemo.esbox.internal.scratchbox.core.Activator;
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.filesystem.ISharedFilesystemProvider;
+import org.maemo.mica.common.core.filesystem.ISharedFolder;
import org.maemo.mica.common.core.machine.IMachine;
+import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
import org.maemo.mica.common.core.process.ShellTemplateSubstitutor;
import org.maemo.mica.common.core.sdk.IDeviceSDKTarget;
@@ -116,9 +119,9 @@
IPath machinePath = sdkTarget.getHostToMachineFileSystemMapping()
.convertHostToTargetPath(localSbrshConfigFile);
if (machinePath == null)
- throw new MicaException("Cannot locate the file "
- + localSbrshConfigFile + " on the machine hosting "
- + sdkTarget.getName());
+ throw new MicaException("The file '"
+ + localSbrshConfigFile + "' is not visible to the machine hosting "
+ + sdkTarget.getName() + " (add a shared folder or bind mount?)");
return machinePath;
}
@@ -153,9 +156,31 @@
* getDefaultCustomConfigFileName()
*/
public String getDefaultCustomConfigFileName() {
+ // this needs to be on the host machine, but visible to
+ // the SDK target.
+ IPath baseDir = null;
+ ISharedFilesystemProvider sharedFilesystemProvider = getBuildMachine().getSharedFilesystemProvider();
+ if (sharedFilesystemProvider != null) {
+ for (ISharedFolder folder : sharedFilesystemProvider.getSharedFolders()) {
+ if (folder.isHostProvidedShare()) {
+ baseDir = folder.getLocalPath();
+ break;
+ }
+ }
+ }
+
+ if (baseDir == null) {
+ baseDir = MachineRegistry.getInstance().getLocalMachine().getUserHome();
+ }
+ return baseDir.
+ append(SBRSHLaunchProtocolType.DEFAULT_CUSTOM_SBRSH_CONFIG_FILE_NAME).
+ toOSString();
+
+ /*
return getBuildMachine().getUserHome().append(
SBRSHLaunchProtocolType.DEFAULT_CUSTOM_SBRSH_CONFIG_FILE_NAME)
.toPortableString();
+ */
}
/**
@@ -172,6 +197,7 @@
* current project
* <li>${TARGET_PROJECT_PATH} -- the path on the target which will expose
* the project contents
+ * <li>${USER} -- the local username
* <p>
* The template may optionally expose a "rootstrap mount" (already filled
* in) for targets using sandbox mode.
@@ -229,7 +255,7 @@
}
}
- public boolean enableSanboxOption() {
+ public boolean enableSandboxMode() {
return true;
}
@@ -238,7 +264,7 @@
.getRegisteredKeyValue(org.maemo.esbox.scratchbox.core.sbrsh.SBRSHPreferenceConstants.DEFAULT_REMOTE_USER);
}
- public boolean isDefaultSanboxMode() {
+ public boolean isDefaultSandboxMode() {
return new Boolean(
PREFERENCE
.getRegisteredKeyValue(org.maemo.esbox.scratchbox.core.sbrsh.SBRSHPreferenceConstants.DEFAULT_SANDBOX_MODE));
@@ -258,22 +284,36 @@
String hostAddress = null;
- if(buildMachine instanceof ISSHMachine && deviceTarget.getMachine() instanceof ISSHMachine){
- hostAddress = ((ISSHMachine)deviceTarget.getMachine()).getSshConfiguration().getHostAddress();
- String ts = ((ISSHMachine)deviceTarget.getMachine()).getSshConfiguration().getTargetAddress();
+ if (deviceTarget.getMachine() instanceof ISSHMachine) {
- ISSHMachine buildMachine = (ISSHMachine) this.buildMachine;
-
- String machineHostingESboxIP = buildMachine.getSshConfiguration().getHostAddress();
- String esboxBuildMachineIP = buildMachine.getSshConfiguration().getTargetAddress();
+ if (buildMachine instanceof ISSHMachine) {
+ hostAddress = ((ISSHMachine) deviceTarget.getMachine())
+ .getSshConfiguration().getHostAddress();
+ String ts = ((ISSHMachine) deviceTarget.getMachine())
+ .getSshConfiguration().getTargetAddress();
- // if device tries to access the local machine on the same network of build machine
- if (hostAddress.equals(machineHostingESboxIP)) {
- hostAddress = esboxBuildMachineIP; // switch to ESbox Build Machine address
- // In the case of a Virtual machine, this only works if
- // the user rightly configured the Bridge Network
+ ISSHMachine buildMachine = (ISSHMachine) this.buildMachine;
+
+ String machineHostingESboxIP = buildMachine
+ .getSshConfiguration().getHostAddress();
+ String esboxBuildMachineIP = buildMachine.getSshConfiguration()
+ .getTargetAddress();
+
+ // if device tries to access the local machine on the same
+ // network of build machine
+ if (hostAddress.equals(machineHostingESboxIP)) {
+ hostAddress = esboxBuildMachineIP; // switch to ESbox Build
+ // Machine address
+ // In the case of a Virtual machine, this only works if
+ // the user rightly configured the Bridge Network
+ }
+ } else {
+ hostAddress = ((ISSHMachine) deviceTarget.getMachine())
+ .getSshConfiguration().getHostAddress();
}
}
+
+
return hostAddress;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapterFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapterFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESBoxSBRSHLaunchAdapterFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,12 +13,13 @@
package org.maemo.esbox.internal.scratchbox.adapters;
import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.mica.common.core.machine.IBuildMachine;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.launch.adapters.IRunStandaloneAdapter;
import org.maemo.mica.internal.api.protocol.launch.sbrsh.ISBRSHLaunchAdapter;
/**
- * This factory ties "run standalone" support into an SDK target
+ * This factory ties SBRSH support into an SDK target
*
* @author eswartz
*
@@ -35,12 +36,10 @@
*/
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType.equals(ISBRSHLaunchAdapter.class)) {
- if (adaptableObject instanceof ISDKTarget) {
+ if (adaptableObject instanceof ISDKTarget &&
+ ((ISDKTarget) adaptableObject).getMachine() instanceof IBuildMachine) {
ISDKTarget sdkTarget = (ISDKTarget) adaptableObject;
- if (sdkTarget.getPlatform().getName().toLowerCase().matches(
- "gregale|bora|chinook|diablo|fremantle")) {
- return new ESBoxSBRSHLaunchAdapter(sdkTarget);
- }
+ return new ESBoxSBRSHLaunchAdapter(sdkTarget);
}
}
return null;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -14,9 +14,9 @@
import org.maemo.esbox.internal.api.scratchbox.core.execEnv.GTKExecutionEnvironmentHandler;
import org.maemo.esbox.internal.api.scratchbox.core.execEnv.MaemoExecutionEnvironmentHandler;
import org.maemo.esbox.internal.api.scratchbox.core.execEnv.X11ExecutionEnvironmentHandler;
+import org.maemo.mica.common.core.adapters.IExecutionEnvironmentProviderAdapter;
import org.maemo.mica.common.core.execEnv.IExecutionEnvironment;
import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentHandler;
-import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.internal.api.maemosdk.core.MaemoExecutionEnvironmentIds;
import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoEmulatorExecutionEnvironmentProviderAdapterFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,7 +13,7 @@
import org.eclipse.core.runtime.IAdapterFactory;
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
-import org.maemo.mica.common.core.execEnv.IExecutionEnvironmentProviderAdapter;
+import org.maemo.mica.common.core.adapters.IExecutionEnvironmentProviderAdapter;
import org.maemo.mica.common.core.sdk.ISDKTarget;
/**
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -12,7 +12,7 @@
package org.maemo.esbox.internal.scratchbox.adapters;
import org.maemo.esbox.maemosdk.core.MaemoEnvironmentUtils;
-import org.maemo.mica.common.core.env.EnvironmentManager;
+import org.maemo.mica.common.core.env.EnvironmentModifierBlock;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter;
@@ -39,7 +39,7 @@
* @see org.maemo.mica.common.launch.adapters.ITargetEnvironmentModifierAdapter#getTargetEnvironmentModifierBlock(org.maemo.mica.common.launch.core.ILaunchProxy)
*/
public IEnvironmentModifierBlock getTargetEnvironmentModifierBlock(ILaunchProxy launchProxy) {
- IEnvironmentModifierBlock envBlock = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
+ IEnvironmentModifierBlock envBlock = new EnvironmentModifierBlock();
// first, all launches need proper DBUS access
envBlock.define("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/session_bus_socket");
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/internal/scratchbox/adapters/ESboxMaemoTargetEnvironmentModifierAdapterFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,7 +20,6 @@
* @author eswartz
*
*/
- at SuppressWarnings("unchecked")
public class ESboxMaemoTargetEnvironmentModifierAdapterFactory implements IAdapterFactory {
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/command/ScratchboxCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/command/ScratchboxCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/command/ScratchboxCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,22 +11,37 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.core.command;
-import org.eclipse.core.runtime.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.security.InvalidParameterException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ui.console.MessageConsole;
-import org.maemo.esbox.internal.api.scratchbox.core.commands.*;
+import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommand;
+import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
+import org.maemo.esbox.internal.api.scratchbox.core.commands.ScratchboxInvalidOperationException;
import org.maemo.esbox.internal.scratchbox.core.Activator;
import org.maemo.esbox.scratchbox.core.SBPreferenceConstants;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.Policy;
+import org.maemo.mica.common.core.console.ConsoleStreamMonitor;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ShellTemplateSubstitutor;
-import java.io.*;
-import java.security.InvalidParameterException;
-import java.text.MessageFormat;
-import java.util.*;
-
/**
* Implements some common methods for Scratchbox commands.
* <p>
@@ -162,30 +177,6 @@
* @throws ScratchboxException
* failure to launch process
*/
- public Process createProcess(List<String> cmdLine) throws MicaException {
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(commandAbstractor
- .getProcessLauncherFactory(), null, cmdLine);
- Process process = processLauncher.createProcess();
- if (console != null) {
- new PrintStream(console.newMessageStream())
- .println(CommandLineArguments.toCommandLine(cmdLine));
- processLauncher.redirectToConsole(console);
- }
- return process;
- }
-
- /**
- * Create a process from the given process launch handler factory and the
- * given command line.
- *
- * @param launcherFactory
- * the factory for creating IProcessLauncherFactory
- * @param commandLine
- * the command line string
- * @throws ScratchboxException
- * failure to launch process
- */
public Process createProcess(String commandline) throws MicaException {
return createProcess(commandline, null);
}
@@ -205,14 +196,14 @@
IEnvironmentModifierBlock envBlock) throws MicaException {
List<String> cmdLine = CommandLineArguments
.createFromCommandLine(commandline);
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(commandAbstractor
- .getProcessLauncherFactory(), null, cmdLine, envBlock);
- Process process = processLauncher.createProcess();
+ IProcessLauncher processLauncher = commandAbstractor
+ .getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine, envBlock));
if (console != null) {
new PrintStream(console.newMessageStream()).println(commandline);
- processLauncher.redirectToConsole(console);
+ processLauncher.queueStreamMonitor(new ConsoleStreamMonitor(console));
}
+ Process process = processLauncher.createProcess(null);
return process;
}
@@ -236,20 +227,16 @@
protected IStatus runAndWaitForProcess(String jobName,
final String commandline, IEnvironmentModifierBlock envBlock,
long timeout) throws MicaException {
- final IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(
- commandAbstractor.getProcessLauncherFactory(),
- null,
- CommandLineArguments.createFromCommandLine(commandline),
- envBlock);
- processLauncher.usePTY(true);
+ ProcessLauncherParameters params = ProcessLauncherParameters.create(CommandLineArguments.createFromCommandLine(commandline), envBlock);
+ final IProcessLauncher processLauncher = commandAbstractor.getProcessLauncherFactory().createProcessLauncher(
+ params);
- processLauncher.createProcess();
new PrintStream(console.newMessageStream()).println(commandline);
- processLauncher.redirectToConsole(console);
- int exit = processLauncher.waitToComplete(monitor);
+ processLauncher.queueStreamMonitor(new ConsoleStreamMonitor(console));
+ int exit = ProcessLauncherUtils.launchAndMonitorStandardStreams(processLauncher,
+ null, monitor);
if (exit == -1)
return CANCEL_STATUS;
else if (exit != 0)
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -10,26 +10,8 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.core.sbrsh;
-import java.util.Properties;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
+public class SBRSHPreferenceMigrator extends PreferenceMigratorAdapter {
-public class SBRSHPreferenceMigrator implements IPreferenceMigrator {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(
- * java.util.Properties)
- */
- public void adjustDefaultSettings(Properties newPropertyDefaults) {
- }
-
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
- }
-
}
\ No newline at end of file
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sdk/ScratchboxSDKFacade.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sdk/ScratchboxSDKFacade.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sdk/ScratchboxSDKFacade.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -42,8 +42,8 @@
* */
public synchronized List<IScratchboxSDK> getAllScratchboxSDKs() {
// always check since this facade doesn't listen to SDKFactory
- SDKFactory.getInstance().waitForRefreshComplete(null);
- return SDKFactory.getInstance().getSDKsOfType(IScratchboxSDK.class);
+ SDKManager.getInstance().waitForRefreshComplete(null);
+ return SDKManager.getInstance().getSDKsOfType(IScratchboxSDK.class);
}
/**
@@ -53,7 +53,7 @@
* @return non-<code>null</code> list of results
*/
public <SboxSDK extends IScratchboxSDK> List<SboxSDK> getScratchboxSDK(Class<SboxSDK> klass) {
- return SDKFactory.getInstance().getSDKsOfType(klass);
+ return SDKManager.getInstance().getSDKsOfType(klass);
}
/**
@@ -62,8 +62,8 @@
* @return array of IScratchboxSDKTarget, never <code>null</code>
*/
public IScratchboxSDKTarget[] getScratchboxSDKTargets() {
- SDKFactory.getInstance().waitForRefreshComplete(null);
- List<IScratchboxSDKTarget> targets = SDKFactory.getInstance().getSDKTargetsOfType(IScratchboxSDKTarget.class);
+ SDKManager.getInstance().waitForRefreshComplete(null);
+ List<IScratchboxSDKTarget> targets = SDKManager.getInstance().getSDKTargetsOfType(IScratchboxSDKTarget.class);
return (IScratchboxSDKTarget[]) targets.toArray(new IScratchboxSDKTarget[targets.size()]);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,7 +17,7 @@
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import java.util.List;
@@ -56,7 +56,7 @@
Process process = createProcess(setupTargetCommand, null);
getInputFromProcessAndWait(process, false, 0);
sdk.refresh();
- SDKFactory.getInstance().fireListeners();
+ SDKManager.getInstance().fireListeners();
return true;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetCurrentTargetCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetCurrentTargetCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetCurrentTargetCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -55,7 +55,7 @@
Process process = createProcess(currentTargetCommand, null);
- String currentTarget = getInputFromProcessAndWait(process, true, 0);
+ String currentTarget = getInputFromProcessAndWait(process, false, 0);
return currentTarget;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetVersionScratchboxCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetVersionScratchboxCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/GetVersionScratchboxCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -12,17 +12,17 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb1.command;
+import java.util.List;
+
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.internal.scratchbox.sb1.core.SB1PreferenceConstants;
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
-import java.util.List;
-
/**
* Get the version of Scratchbox installed. This command wraps the callback to
* service sb-conf version.
@@ -62,11 +62,11 @@
String currentSboxVersionCommand = this
.replaceScratchboxConfigCommand(sboxVersionAction);
- Results results;
+ LaunchResults results;
try {
results = ProcessLauncherUtils.launchAndReadStandardStreams(
- ProcessLauncherCreator.createProcessLauncher(commandAbstractor.getProcessLauncherFactory(),
- currentSboxVersionCommand),
+ commandAbstractor.getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(currentSboxVersionCommand)),
null);
} catch (MicaException e) {
throw new ScratchboxException("Failed to launch " + currentSboxVersionCommand, e);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/RemoveTargetCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/RemoveTargetCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/RemoveTargetCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -21,7 +21,7 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.console.CoreConsoleManager;
import org.maemo.mica.common.core.sdk.ISDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import java.util.ArrayList;
import java.util.List;
@@ -74,7 +74,7 @@
removeTargetCommand, null, 0);
sdk.refresh();
- SDKFactory.getInstance().fireListeners();
+ SDKManager.getInstance().fireListeners();
return status.isOK();
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/SB1PreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,23 +11,13 @@
package org.maemo.esbox.internal.scratchbox.sb1.core;
-import java.util.Properties;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
-
/**
- * Convert prefs from older SB1 settings
+ * Convert prefs from older SB1 settings (nothing to do anymore, since we do not
+ * maintain compatibility with 1st edition)
* @author eswartz
*
*/
-public class SB1PreferenceMigrator implements IPreferenceMigrator {
-
- public void adjustDefaultSettings(Properties newPropertyDefaults) {
- }
-
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
- }
+public class SB1PreferenceMigrator extends PreferenceMigratorAdapter {
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -41,7 +41,7 @@
import org.maemo.mica.common.core.ui.*;
import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
import org.maemo.mica.internal.api.common.core.machine.HostMachineBackend;
-import org.maemo.mica.internal.api.common.core.sdk.BaseSDKPlatform;
+import org.maemo.mica.internal.api.common.core.sdk.SDKPlatform;
import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
import org.maemo.mica.maemosdk.core.MaemoSDKPlatformEngine;
@@ -68,10 +68,8 @@
private IPath sdkRoot;
public Scratchbox1SDK(IMachine machine, IPath installLocation,
- String version,
IPreferenceProvider prefProvider) {
- super(machine, installLocation, version,
- IScratchbox1SDK.NAME,
+ super(machine, installLocation, IScratchbox1SDK.NAME,
1);
this.sdkRoot = null;
this.prefProvider = prefProvider;
@@ -501,13 +499,12 @@
.createFromVarArgs("kill", "-9");
cmdLine.addAll(sessions);
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(this
- .getMachineProcessLauncherFactory(), null,
- cmdLine);
+ IProcessLauncher processLauncher = this
+ .getMachineProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine));
Process process;
try {
- process = processLauncher.createProcess();
+ process = processLauncher.createProcess(null);
process.waitFor();
} catch (final Exception e1) {
Display.getDefault().syncExec(new Runnable() {
@@ -590,7 +587,7 @@
}
// else, it's unknown, and scan later
}
- return new BaseSDKPlatform(platformName, version);
+ return new SDKPlatform(platformName, version);
}
/**
@@ -774,7 +771,8 @@
IProcessLauncherFactory factory = machine.getProcessLauncherFactory();
factory = new SudoWrappedProcessLauncherFactory(machine, factory, "root");
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(factory, null, cmdLine);
+ IProcessLauncher processLauncher = factory.createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine));
IStreamMonitor[] monitors;
if (extraMonitors != null) {
@@ -907,7 +905,9 @@
return command.performCommand(arguments);
} catch (ScratchboxException e) {
// might not be turned on yet
- if (e.getMessage() != null && e.getMessage().contains("properly set up")) {
+ if (e.getMessage() != null &&
+ (e.getMessage().contains("properly set up")
+ || e.getMessage().contains("Inconsistency detected by ld.so"))) {
IStatus status = Scratchbox1SDK.startup(
getMachine(), getInstallRoot(),
new NullProgressMonitor(),
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,8 +11,23 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb1.core;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
import org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget;
import org.maemo.esbox.internal.scratchbox.sb1.Activator;
import org.maemo.esbox.internal.scratchbox.sb1.command.ShowTargetCommand;
@@ -28,10 +43,6 @@
import org.maemo.mica.common.core.sdk.ISDKPlatform;
import org.osgi.framework.Version;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
/**
* SDK target for Scratchbox 1
*
@@ -46,6 +57,10 @@
private IPath targetRoot;
+ private IProcessLauncherFactory nonRootProcessLauncherFactory;
+
+ private IProcessLauncherFactory rootProcessLauncherFactory;
+
public Scratchbox1SDKTarget(Scratchbox1SDK sdk, ISDKPlatform platform,
String architecture, String target, IPath targetRoot) {
super(sdk, platform, architecture, target);
@@ -68,31 +83,37 @@
/*
* (non-Javadoc)
*
- * @seeorg.maemo.esbox.maemosdk.core.sdk.IScratchboxSDKTarget#
- * getProcessLauncherFactoryForInstall()
+ * @see
+ * org.maemo.mica.maemosdk.core.sdk.IScratchboxSDKTarget#getRootstrapPath()
*/
- public IProcessLauncherFactory getProcessLauncherFactoryForInstall() {
- return new Scratchbox1ProcessLauncherFactory(this, true);
+ public IPath getRootstrapPath() {
+ return getSDKTargetRoot();
}
/*
* (non-Javadoc)
*
* @see
- * org.maemo.mica.maemosdk.core.sdk.IScratchboxSDKTarget#getRootstrapPath()
+ * org.maemo.mica.common.core.sdk.ISDKTarget#getProcessLauncherFactory()
*/
- public IPath getRootstrapPath() {
- return getSDKTargetRoot();
+ public synchronized IProcessLauncherFactory getProcessLauncherFactory() {
+ if (nonRootProcessLauncherFactory == null) {
+ nonRootProcessLauncherFactory = new Scratchbox1ProcessLauncherFactory(this, false);
+ }
+ return nonRootProcessLauncherFactory;
}
/*
* (non-Javadoc)
*
- * @see
- * org.maemo.mica.common.core.sdk.ISDKTarget#getProcessLauncherFactory()
+ * @seeorg.maemo.esbox.maemosdk.core.sdk.IScratchboxSDKTarget#
+ * getProcessLauncherFactoryForInstall()
*/
- public IProcessLauncherFactory getProcessLauncherFactory() {
- return new Scratchbox1ProcessLauncherFactory(this, false);
+ public IProcessLauncherFactory getProcessLauncherFactoryForInstall() {
+ if (rootProcessLauncherFactory == null) {
+ rootProcessLauncherFactory = new Scratchbox1ProcessLauncherFactory(this, true);
+ }
+ return rootProcessLauncherFactory;
}
/*
@@ -218,4 +239,68 @@
return commandPattern;
}
+
+ /* (non-Javadoc)
+ * @see org.maemo.mica.internal.api.common.core.sdk.BaseSDKTarget#addToContextMenu(org.eclipse.swt.widgets.Menu)
+ */
+ @Override
+ public void addToContextMenu(final Menu menu) {
+ super.addToContextMenu(menu);
+
+ final MenuItem item = new MenuItem(menu, SWT.NONE);
+ item.setEnabled(false);
+ item.setText("Install doctools (libintl)");
+
+ // this can take some time to check, so do it asynchronously to avoid
+ // a delay creating or exiting the menu
+ Job job = new Job("Checking doctools...") {
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ boolean needDoctools = false;
+ try {
+ if (!isBroken && !getDevkits().contains("doctools"))
+ needDoctools = true;
+ } catch (MicaException e) {
+ isBroken = true;
+ }
+
+ if (needDoctools) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ if (!item.isDisposed()) {
+ item.setEnabled(true);
+
+ item.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Job job = new Job("Installing doctools for " + getDisplayName()) {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ addDevkit("doctools");
+ return Status.OK_STATUS;
+ } catch (MicaException e) {
+ return Activator.createErrorStatus("Failed to add doctools support", e);
+ }
+ }
+
+ };
+ job.schedule();
+ }
+ });
+ }
+ }
+ });
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setUser(false);
+ job.schedule();
+
+ }
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/ESboxNokiaBinariesInstallationAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/ESboxNokiaBinariesInstallationAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/ESboxNokiaBinariesInstallationAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -29,6 +29,7 @@
import org.maemo.mica.internal.api.linux.packages.core.IPackageManager;
import org.maemo.mica.internal.api.linux.packages.core.ISystemPackage;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.AptPackageManagerRegistry;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
import org.maemo.mica.maemosdk.ui.adapters.INokiaBinariesInstallationAdapter;
import java.text.MessageFormat;
@@ -87,15 +88,13 @@
ISDKTarget sdkTarget = config.getSDKTarget();
ISDKPlatform platform = sdkTarget.getPlatform();
- if (!platform.getName().toLowerCase().matches("fremantle|diablo"))
- continue;
-
-
String packageName = null;
- if (platform.getName().toLowerCase().matches("fremantle"))
+ if (IMaemoSDKPlatform.FREMANTLE.matches(platform))
packageName = NokiaBinariesInstallerEngine.FREMANTLE_NOKIABIN_PKG;
- else if (platform.getName().toLowerCase().matches("diablo"))
+ else if (IMaemoSDKPlatform.DIABLO.matches(platform))
packageName = NokiaBinariesInstallerEngine.DIABLO_NOKIABIN_PKG;
+ else
+ continue;
if (packageName != null) {
ISystemPackage sysPack = null;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1EnvironmentProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1EnvironmentProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1EnvironmentProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,17 +11,21 @@
package org.maemo.esbox.internal.scratchbox.sb1.launcher;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
import org.maemo.esbox.internal.scratchbox.sb1.Activator;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDKTarget;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.env.EnvironmentProperties;
-import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.internal.api.common.core.IStandardEnvironmentProvider;
+import org.maemo.mica.internal.api.common.core.env.IStandardEnvironmentProvider;
+import org.maemo.mica.internal.api.common.core.machine.IMachineImpl;
-import java.util.*;
-
/**
* The standard environment provider for scratchbox caches the environment once
* per SDK target.
@@ -53,19 +57,18 @@
// gather arguments by querying a typical shell launched in POSIX
// mode (sh instead of bash)
Scratchbox1ProcessLauncher launcher = new Scratchbox1ProcessLauncher(
- sdkTarget, null, CommandLineArguments.createFromVarArgs(
- "sh", "-c", "set"), null);
+ sdkTarget, ProcessLauncherParameters.create("sh", "-c", "set"));
try {
- Results results = ProcessLauncherUtils
- .launchAndReadStandardStreams(launcher, null);
+ LaunchResults results = ProcessLauncherUtils.launchAndReadStandardStreams(launcher, null);
standardEnv = EnvironmentProperties
.createFromShellEnvDump(results.stdout);
} catch (MicaException e) {
Activator.getErrorLogger().logError(
"Failed to read scratchbox environment; using system environment",
e);
- standardEnv = sdkTarget.getMachine().getStandardEnvironment();
+ standardEnv = ((IMachineImpl)sdkTarget.getMachine()).
+ getStandardEnvironmentProvider().getRawEnvironment();
}
cachedStdEnvMap.put(sdkTarget, standardEnv);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1PrepareTargetProcessLaunchAdapter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1PrepareTargetProcessLaunchAdapter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1PrepareTargetProcessLaunchAdapter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,8 +17,8 @@
import org.eclipse.swt.widgets.Display;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
-import org.maemo.mica.common.core.GeneralUtils;
import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.WorkspaceUtils;
import org.maemo.mica.common.core.adapters.IPrepareTargetProcessLaunchAdapter;
import org.maemo.mica.common.core.sdk.ISDKTarget;
@@ -63,7 +63,7 @@
if (failedToSwitch || !sdk.getCurrentTarget().equals(targetName)) {
final boolean[] ret = { false };
- if (!GeneralUtils.isJUnitRunning()) {
+ if (!WorkspaceUtils.isJUnitRunning()) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
ret[0] = MessageDialog.openQuestion(null,
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -16,11 +16,10 @@
import org.maemo.esbox.internal.scratchbox.sb1.core.SB1PreferenceConstants;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDK;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDKTarget;
-import org.maemo.mica.common.core.GeneralUtils;
+import org.maemo.mica.common.core.EFSFileUtils;
import org.maemo.mica.common.core.HostUtils;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.Policy;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.process.*;
import org.maemo.mica.common.core.sdk.ISDKTarget;
@@ -37,7 +36,7 @@
* @author eswartz
*
*/
-public class Scratchbox1ProcessLauncher extends BaseSDKTargetProcessLauncher implements
+public class Scratchbox1ProcessLauncher extends AbstractSDKTargetProcessLauncher implements
IProcessLauncher {
/**
@@ -47,89 +46,35 @@
private static final String RUN_SCRIPT_NAME = "run.sh";
private Scratchbox1SDKTarget sdkTarget;
- private List<String> originalArguments;
- private IEnvironmentModifierBlock originalEnvblock;
-
- private IPath originalCwd;
-
private String runScriptContents;
-
- /*
public Scratchbox1ProcessLauncher(Scratchbox1SDKTarget sdkTarget,
- IPath workingDirectory, List<String> cmdLine,
- IEnvironmentModifierBlock environmentModifierBlock) {
- // in SB 1, the working directory, executable, args, and environment
- // are encoded in a single command to a wrapper script
- super(encodeArgumentArray(sdkTarget, workingDirectory, cmdLine,
- environmentModifierBlock), null, null,
- sdkTarget);
- if (sdkTarget == null)
- throw new IllegalArgumentException();
+ ProcessLauncherParameters params) {
+ super(params, sdkTarget);
this.sdkTarget = sdkTarget;
- this.originalArguments = cmdLine;
}
-*/
- public Scratchbox1ProcessLauncher(Scratchbox1SDKTarget sdkTarget,
- IPath workingDirectory, List<String> cmdLine,
- IEnvironmentModifierBlock environmentModifierBlock) {
- super(encodeArgumentArray(sdkTarget), null, null,
- sdkTarget);
- this.sdkTarget = sdkTarget;
- this.originalCwd = workingDirectory;
- this.originalArguments = cmdLine;
- this.originalEnvblock = environmentModifierBlock;
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * org.maemo.mica.internal.common.core.BaseProcessLauncher#getLaunchInfoPrefix()
+
+ /**
+ * All the commands, environment, and current directory manipulation
+ * are jammed into a script which is run on the target machine.
+ * This is done because the /scratchbox/login is incapable of receiving
+ * environment variables or current directories in a reliable way.
+ * Thus, the parameters we encode here are pretty much the same every time.
+ * @see org.maemo.mica.common.core.process.AbstractSDKTargetProcessLauncher#encodeLaunchParameters(org.maemo.mica.common.core.process.ProcessLauncherParameters)
*/
@Override
- protected String getLaunchInfoPrefix() {
- return sdkTarget + " ";
- }
-
- @Override
- public String getCommandLineString() {
- return CommandLineArguments.toCommandLine(originalArguments);
- }
-
- /*
- private static List<String> encodeArgumentArray(ISDKTarget sdkTarget,
- IPath workingDirectory, List<String> cmdLine,
- IEnvironmentModifierBlock environmentModifierBlock) {
-
- // encode working directory inside scratchbox
- if (workingDirectory == null) {
- workingDirectory = new Path("/");
- }
-
- List<String> envArgs = encodeEnvironmentModifier(environmentModifierBlock);
-
- // Encode the launch command by replacing the arguments
- // representing template arguments with the actual values.
- //
+ public ProcessLauncherParameters encodeLaunchParameters(
+ ProcessLauncherParameters params) {
ShellTemplateSubstitutor substitutor = new ShellTemplateSubstitutor();
substitutor.define("SBOX_ROOT", ((Scratchbox1SDK) sdkTarget.getSDK()).getInstallRoot().removeTrailingSeparator().toPortableString());
- IPath targetRunScriptPath = sdkTarget.getMachineToSDKTargetFileSystemMapping().convertHostToTargetPath(getRunScriptLocation(sdkTarget));
+ IPath targetRunScriptPath = sdkTarget.getMachineToSDKTargetFileSystemMapping().convertHostToTargetPath(
+ getRunScriptLocation(sdkTarget));
+
// it better not be null
substitutor.define("RUN_SCRIPT_DIRECTORY", targetRunScriptPath.toPortableString());
substitutor.define("RUN_SCRIPT", RUN_SCRIPT_NAME);
- substitutor.define("DIRECTORY", workingDirectory.toPortableString());
- // this weird string is used for argument encoding since it's unlikely
- // to appear in normal environment variables and doesn't need to be escaped
- String exportsString = CommandLineArguments.toString(envArgs,
- "}", false); //$NON-NLS-1$
-
- substitutor.define("EXPORTS", exportsString);
- substitutor.define("COMMAND", cmdLine.get(0));
- substitutor.define("ARGS", CommandLineArguments.toCommandLine(cmdLine
- .subList(1, cmdLine.size())));
-
// get the Scratchbox invocation pattern
String commandPattern = sdkTarget
.getPreferenceValue(SB1PreferenceConstants.SB1_LOGIN_COMMAND);
@@ -139,34 +84,10 @@
List<String> commandArgs = CommandLineArguments
.createFromCommandLine(commandPattern);
- return commandArgs;
+
+ return ProcessLauncherParameters.create(commandArgs);
}
-*/
- private static List<String> encodeArgumentArray(ISDKTarget sdkTarget) {
-
- // Encode the launch command by replacing the arguments
- // representing template arguments with the actual values.
- //
- ShellTemplateSubstitutor substitutor = new ShellTemplateSubstitutor();
-
- substitutor.define("SBOX_ROOT", ((Scratchbox1SDK) sdkTarget.getSDK()).getInstallRoot().removeTrailingSeparator().toPortableString());
- IPath targetRunScriptPath = sdkTarget.getMachineToSDKTargetFileSystemMapping().convertHostToTargetPath(getRunScriptLocation(sdkTarget));
- // it better not be null
- substitutor.define("RUN_SCRIPT_DIRECTORY", targetRunScriptPath.toPortableString());
- substitutor.define("RUN_SCRIPT", RUN_SCRIPT_NAME);
-
- // get the Scratchbox invocation pattern
- String commandPattern = sdkTarget
- .getPreferenceValue(SB1PreferenceConstants.SB1_LOGIN_COMMAND);
-
- // replace variables
- commandPattern = substitutor.substitute(commandPattern);
-
- List<String> commandArgs = CommandLineArguments
- .createFromCommandLine(commandPattern);
- return commandArgs;
- }
/**
* Get the location where the run script should be copied (on the host), so that it
* is visible to the target.
@@ -183,33 +104,6 @@
return loc;
}
- /**
- * Encode the add/replace and delete operations to run.sh
- *
- * @param environmentModifierBlock
- * @return list of modifier flags
- */
- /*
- private static List<String> encodeEnvironmentModifier(
- IEnvironmentModifierBlock environmentModifierBlock) {
- List<String> mods = new ArrayList<String>();
- if (environmentModifierBlock != null) {
- for (IEnvironmentOperation operation : environmentModifierBlock
- .getOperations()) {
- if (operation.getValue() == null)
- mods.add("-" + operation.getName());
- else
- mods.add(operation.getName() + "=" + operation.getValue());
- }
- }
- if (mods.isEmpty()) {
- mods.add("-"); // must have something for the argument to be
- // detected by run.sh
- }
- return mods;
- }
- */
-
/* (non-Javadoc)
* @see org.maemo.mica.common.core.process.BaseSDKTargetProcessLauncher#setupForLaunch()
*/
@@ -219,31 +113,8 @@
super.setupForLaunch();
- /*
- // Ensure the run script is available. This script is needed because
- // /scratchbox/login doesn't pass environment variables the way we need to.
- // Thus, we need to run under scratchbox a script which itself sets those
- // variables.
- GeneralUtils.cachedCopyScriptToMachine(
- FileLocator.find(Activator.getDefault().getBundle(),
- new Path("conf/" + RUN_SCRIPT_NAME),
- null),
- sdkTarget.getMachine(),
- getRunScriptLocation(sdkTarget),
- false,
- null);
- */
-
- // encode working directory inside scratchbox
- if (originalCwd == null) {
- originalCwd = new Path("/");
- }
-
// create the run script
- String command = CommandLineArguments.wrapStandardShellCommandLine(
- originalCwd,
- originalEnvblock,
- originalArguments);
+ String command = CommandLineArguments.wrapStandardUnixShellCommandLine(getLaunchParameters());
command = "#!/bin/sh\n" + command + "\n";
@@ -264,7 +135,7 @@
Policy.close(os);
- GeneralUtils.makeScriptExecutable(store);
+ EFSFileUtils.makeScriptExecutable(store);
} catch (CoreException e) {
throw new MicaException("Failed to copy command line to run script", e);
}
@@ -274,8 +145,8 @@
* @see org.maemo.mica.common.core.process.BaseProcessLauncher#formatLaunchDumpInfo()
*/
@Override
- protected String formatLaunchDumpInfo() {
- return super.formatLaunchDumpInfo() + HostUtils.getNewline() +
+ protected String formatLaunchDumpInfo(ProcessLauncherParameters parameters) {
+ return super.formatLaunchDumpInfo(parameters) + HostUtils.getNewline() +
runScriptContents + HostUtils.getNewline();
}
@@ -285,14 +156,9 @@
* @see org.maemo.mica.internal.common.core.BaseProcessLauncher#doCreateProcess()
*/
@Override
- protected Process doCreateProcess() throws Exception {
+ protected Process doCreateProcess(ProcessLauncherParameters params, IProgressMonitor monitor) throws Exception {
sdkTarget.ensureRealized();
-
- return sdkTarget.getMachine().createProcess(
- getLaunchCurrentWorkingDirectory(),
- getLaunchCommandArguments(),
- getLaunchEnvironmentModifierBlock(),
- isUsePTY());
+ return sdkTarget.getMachine().createProcess(params, monitor);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncherFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncherFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Scratchbox1ProcessLauncherFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -10,48 +10,33 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb1.launcher;
-import org.eclipse.core.runtime.IPath;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDKTarget;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
+import org.maemo.mica.common.core.process.AbstractProcessLauncherFactory;
import org.maemo.mica.common.core.process.IProcessLauncher;
-import org.maemo.mica.internal.api.common.core.BaseProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author eswartz
*
*/
public class Scratchbox1ProcessLauncherFactory extends
- BaseProcessLauncherFactory {
+ AbstractProcessLauncherFactory {
protected Scratchbox1SDKTarget sdkTarget;
private final boolean runAsRoot;
public Scratchbox1ProcessLauncherFactory(Scratchbox1SDKTarget sdkTarget,
boolean runAsRoot) {
- super(new Scratchbox1EnvironmentProvider(sdkTarget), false);
+ super();
this.sdkTarget = sdkTarget;
this.runAsRoot = runAsRoot;
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.maemo.mica.common.core.IProcessLauncherFactory#createProcessLauncher(org
- * .eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath,
- * org.maemo.mica.common.core.List<String>, java.util.Properties)
- */
- protected IProcessLauncher doCreateProcessLauncher(IPath workingDirectory,
- List<String> cmdLine, IEnvironmentModifierBlock envBlock) {
+ protected IProcessLauncher doCreateProcessLauncher(ProcessLauncherParameters params) {
if (runAsRoot) {
- cmdLine = new ArrayList<String>(cmdLine);
- cmdLine.add(0, "fakeroot");
+ params.getCommandLine().add(0, "fakeroot");
}
- return new Scratchbox1ProcessLauncher(sdkTarget, workingDirectory,
- cmdLine, envBlock);
+ return new Scratchbox1ProcessLauncher(sdkTarget, params);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/provider/Scratchbox1SDKProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/provider/Scratchbox1SDKProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/provider/Scratchbox1SDKProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -164,7 +164,7 @@
Scratchbox1SDK sdk = new Scratchbox1SDK(machine,
installPath.addTrailingSeparator(),
- null, prefProvider);
+ prefProvider);
sdk.init();
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/preferences/Scratchbox1PreferencesPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/preferences/Scratchbox1PreferencesPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/preferences/Scratchbox1PreferencesPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -22,7 +22,7 @@
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.maemo.esbox.internal.scratchbox.sb1.IHelpID;
import org.maemo.esbox.internal.scratchbox.sb1.core.SB1PreferenceConstants;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.common.ui.utils.MaemoPreferencesUtils;
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
@@ -124,7 +124,7 @@
String curSandboxRoots = getPreferenceStore().getString(SB1PreferenceConstants.SB1_ROOTS);
if (!curSandboxRoots.equals(origRoots)) {
// asynchronous
- SDKFactory.getInstance().refresh(true);
+ SDKManagerInternal.getInstance().refresh(true);
origRoots = curSandboxRoots;
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/BaseScratchbox1SDKInstallerEngine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/BaseScratchbox1SDKInstallerEngine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/BaseScratchbox1SDKInstallerEngine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -35,7 +35,7 @@
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDK;
import org.maemo.esbox.scratchbox.core.sdk.ScratchboxSDKFacade;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
-import org.maemo.mica.common.core.GeneralUtils;
+import org.maemo.mica.common.core.EFSFileUtils;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.Policy;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
@@ -47,9 +47,12 @@
import org.maemo.mica.common.core.process.IProcessLauncher;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.process.IStreamMonitor;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProxyUtils;
import org.maemo.mica.common.core.ui.IProgressReporter;
import org.maemo.mica.common.core.ui.ProgressReporterStreamTextMonitor;
+import org.maemo.mica.internal.api.common.core.GeneralUtils;
import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
import com.nokia.cpp.internal.api.utils.core.FileUtils;
@@ -86,7 +89,7 @@
try {
installScript = GeneralUtils.cachedCopyScriptToMachine(url,
machine,
- machine.getUserHome().append(GeneralUtils.DEFAULT_MICA_HIDDEN_PATH),
+ MachineUtils.getTemporaryPath(machine),
true,
new SubProgressMonitor(monitor, 1));
} catch (MicaException e) {
@@ -104,23 +107,12 @@
protected IProcessLauncher getRootProcessLauncher(List<String> cmdLine) {
IProcessLauncherFactory factory = machine.getProcessLauncherFactory();
factory = new SudoWrappedProcessLauncherFactory(machine, factory, "root");
- IEnvironmentModifierBlock envBlock = getProxySetupEnvironmentBlock(factory);
+ IEnvironmentModifierBlock envBlock = factory.getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(envBlock);
IProcessLauncher launcher = factory.createProcessLauncher(
- null, cmdLine, envBlock);
+ ProcessLauncherParameters.create(cmdLine, envBlock));
return launcher;
}
-
- /**
- * Get the environment block which has proxy variables installed
- * @param factory
- * @return modified {@link IEnvironmentModifierBlock}
- */
- protected IEnvironmentModifierBlock getProxySetupEnvironmentBlock(
- IProcessLauncherFactory factory) {
- IEnvironmentModifierBlock envBlock = factory.defaultEnvironmentModifierBlock();
- ProcessLauncherUtils.defineProxyVariables(envBlock);
- return envBlock;
- }
/**
* Kill a running Scratchbox installation and turn off its daemons.
@@ -233,7 +225,7 @@
Policy.close(os);
// ensure it's still executable
- GeneralUtils.makeScriptExecutable(machine, installScript);
+ EFSFileUtils.makeScriptExecutable(machine, installScript);
} catch (CoreException e) {
status = Activator.createErrorStatus("Failed to rewrite installer script", e);
reporter.log(status);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -35,11 +35,10 @@
import org.maemo.mica.common.core.Policy;
import org.maemo.mica.common.core.machine.IBuildMachine;
import org.maemo.mica.common.core.machine.MachineRegistry;
-import org.maemo.mica.common.core.process.CommandLineArguments;
import org.maemo.mica.common.core.process.IProcessLauncher;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.process.IStreamMonitor;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
@@ -180,8 +179,8 @@
try {
IProcessLauncherFactory factory = buildMachine.getProcessLauncherFactory();
factory = new SudoWrappedProcessLauncherFactory(buildMachine, factory, "root");
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(
- factory, null, CommandLineArguments.createFromVarArgs("/sbin/reboot"));
+ IProcessLauncher processLauncher = factory.createProcessLauncher(
+ ProcessLauncherParameters.create("/sbin/reboot"));
int exit = ProcessLauncherUtils.launchAndMonitorStandardStreams(
processLauncher,
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/PreviousInstallationDetectionPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/PreviousInstallationDetectionPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/PreviousInstallationDetectionPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -28,6 +28,7 @@
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.maemo.mica.common.core.machine.IBuildMachine;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
/**
* This page is shown when a previous scratchbox installation was detected on build machine
@@ -126,8 +127,7 @@
* @return
*/
private boolean canUpgrade(){
- int DIABLO_SERIE = 4;
- return sdkInstallerData.getSerieNumber() > DIABLO_SERIE
+ return sdkInstallerData.getSerieNumber() > IMaemoSDKPlatform.DIABLO.getVersion().getMajor()
&& !sdkInstallerData.isNonDefaultInstallation();
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerEngine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerEngine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerEngine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -42,9 +42,9 @@
import org.maemo.mica.common.core.process.IStreamMonitor;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.process.StreamLineMonitorAdapter;
-import org.maemo.mica.common.core.sdk.SDKFactory;
import org.maemo.mica.common.core.ui.IProgressReporter;
import org.maemo.mica.common.core.ui.ProgressReporterStreamTextMonitor;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.linux.packages.core.*;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.AptPackageManagerRegistry;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.IAptPackageManager;
@@ -174,7 +174,7 @@
public IStatus installScratchbox(IProgressMonitor monitor) {
try {
// do not refresh during installation
- SDKFactory.getInstance().lock();
+ SDKManagerInternal.getInstance().lock();
if(installerData.isUpgrade())
return safeInstallWithPkgManager(monitor);
@@ -187,11 +187,11 @@
// Now, refresh. This is needed even if the wizard was canceled,
// or else Scratchbox is left turned off.
- SDKFactory.getInstance().unlock();
+ SDKManagerInternal.getInstance().unlock();
boolean wasCanceled = monitor.isCanceled();
monitor.setCanceled(false);
- SDKFactory.getInstance().refreshFull(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
+ SDKManagerInternal.getInstance().refreshFull(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
monitor.setCanceled(wasCanceled);
}
}
@@ -213,9 +213,10 @@
//FIXME should add an Field on WizardWorkPage
int timeout= 30;
boolean forceUpgrade = false;
+ boolean forceInstall = true;
MachinePackageInstaller pkgInstaller = new MachinePackageInstaller(
- pkgs, repositoriesToAdd, machine, true, forceUpgrade, timeout, reporter);
+ pkgs, repositoriesToAdd, machine, true, forceUpgrade, forceInstall, timeout, reporter);
status = pkgInstaller.ensureInstalledPackages(shell, monitor);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerData.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerData.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerData.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,6 +17,7 @@
import java.util.List;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
/**
@@ -260,7 +261,8 @@
* @return flag
*/
public boolean isNonDefaultInstallation() {
- return !getScratchboxLocation().equals("/scratchbox");
+ // use Path compare since terminating slash may differ
+ return !new Path(getScratchboxLocation()).equals(new Path("/scratchbox"));
}
/**
* Get the name of the X86 target, given the default basename
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerEngine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerEngine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerEngine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -33,11 +33,12 @@
import org.maemo.mica.common.core.machine.IBuildMachine;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.process.IStreamMonitor;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.process.ProxyUtils;
import org.maemo.mica.common.core.ui.IProgressReporter;
-import org.maemo.mica.internal.api.linux.packages.core.*;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
+import org.maemo.mica.internal.api.linux.packages.core.ISystemPackage;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.AptPackageManagerRegistry;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.IAptPackageManager;
import org.maemo.mica.internal.api.linux.packages.ui.aptinstall.MachinePackageInstaller;
@@ -81,7 +82,7 @@
public IStatus installTargets(IProgressMonitor monitor) {
try {
// avoid refreshing during installation
- SDKFactory.getInstance().lock();
+ SDKManagerInternal.getInstance().lock();
return safeInstallTargets(monitor);
} finally {
@@ -92,11 +93,11 @@
monitor.subTask("Refreshing installed targets...");
// allow refreshes
- SDKFactory.getInstance().unlock();
+ SDKManagerInternal.getInstance().unlock();
boolean wasCanceled = monitor.isCanceled();
monitor.setCanceled(false);
- SDKFactory.getInstance().refreshFull(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
+ SDKManagerInternal.getInstance().refreshFull(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
monitor.setCanceled(wasCanceled);
}
}
@@ -143,17 +144,16 @@
IProcessLauncherFactory factory = machine.getProcessLauncherFactory();
List<String> cmdLine = installerData.createInstallerCommandLine(installScript);
- IEnvironmentModifierBlock envBlock = getProxySetupEnvironmentBlock(factory);
+ IEnvironmentModifierBlock envBlock = factory.getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(envBlock);
int exit;
try {
rememberProcesses();
exit = ProcessLauncherUtils.launchAndMonitorStandardStreams(
- ProcessLauncherCreator.createProcessLauncher(factory,
- null,
- cmdLine,
- envBlock),
+ factory.createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine, envBlock)),
new IStreamMonitor[] {
new MaemoScriptInstallerMonitor(shell, machine, reporter)
},
@@ -284,7 +284,7 @@
return;
}
- MachinePackageInstaller.installPackages(toInstall, shell, reporter, monitor);
+ MachinePackageInstaller.installPackages(toInstall, true, shell, reporter, monitor);
}
monitor.worked(2);
@@ -316,7 +316,7 @@
return;
}
- MachinePackageInstaller.installPackages(toInstall, shell, reporter, monitor);
+ MachinePackageInstaller.installPackages(toInstall, true, shell, reporter, monitor);
}
monitor.worked(3);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -125,7 +125,7 @@
*/
protected void selectDefaultSDK() {
if (sdk == null) {
- List<IScratchbox1SDK> sdks = SDKFactory.getInstance().getSDKsOfType(
+ List<IScratchbox1SDK> sdks = SDKManager.getInstance().getSDKsOfType(
IScratchbox1SDK.class);
if (sdks.size() > 0)
sboxCombo.setSelection(new StructuredSelection(sdks.get(0)));
@@ -191,12 +191,12 @@
}
};
- SDKFactory.getInstance().addListener(sdkListener);
+ SDKManager.getInstance().addListener(sdkListener);
getShell().addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
- SDKFactory.getInstance().removeListener(sdkListener);
+ SDKManager.getInstance().removeListener(sdkListener);
}
});
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/DiabloInstallerScriptWorkPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/DiabloInstallerScriptWorkPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/DiabloInstallerScriptWorkPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -178,6 +178,7 @@
* @seeorg.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin.
* INokiaBinariesWizardDelegate#doWork()
*/
+ @SuppressWarnings("unchecked")
public IStatus doWork() {
final IStatus[] statuses = { Policy.getCancelStatus(Activator
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleLicenseAgreementPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,7 +20,7 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.*;
-import org.maemo.mica.internal.api.common.core.GridLayoutWrappedTextUtils;
+import org.maemo.mica.internal.api.common.core.ui.GridLayoutWrappedTextUtils;
import java.text.MessageFormat;
import java.util.HashSet;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/FremantleWorkPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -161,6 +161,7 @@
* @seeorg.maemo.esbox.internal.scratchbox.sb1.ui.wizard.nokiabin.
* INokiaBinariesWizardDelegate#doWork()
*/
+ @SuppressWarnings("unchecked")
public IStatus doWork() {
final IStatus[] statuses = { Policy.getCancelStatus(Activator
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallerEngine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallerEngine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesInstallerEngine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -14,13 +14,14 @@
import org.eclipse.core.runtime.*;
import org.eclipse.swt.widgets.Shell;
import org.maemo.esbox.internal.scratchbox.sb1.Activator;
-import org.maemo.mica.common.core.GeneralUtils;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.machine.IBuildMachine;
+import org.maemo.mica.common.core.machine.MachineUtils;
import org.maemo.mica.common.core.process.*;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.core.ui.IProgressReporter;
+import org.maemo.mica.internal.api.common.core.GeneralUtils;
import java.net.URL;
import java.util.List;
@@ -100,7 +101,8 @@
IProcessLauncherFactory factory = buildMachine.getProcessLauncherFactory();
List<String> cmdLine = installerData.createInstallerCommandLine(installScript);
- IEnvironmentModifierBlock envBlock = getProxySetupEnvironmentBlock(factory);
+ IEnvironmentModifierBlock envBlock = factory.getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(envBlock);
int exit;
NokiaBinariesInstallerScriptMonitor nokiaBinariesInstallerScriptMonitor = new NokiaBinariesInstallerScriptMonitor(shell, buildMachine, reporter);
@@ -109,10 +111,8 @@
try {
exit = ProcessLauncherUtils.launchAndMonitorStandardStreams(
- ProcessLauncherCreator.createProcessLauncher(factory,
- null,
- cmdLine,
- envBlock),
+ factory.createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine, envBlock)),
new IStreamMonitor[] {
nokiaBinariesInstallerScriptMonitor
},
@@ -185,8 +185,8 @@
IPath installScript = null;
try {
installScript = GeneralUtils.cachedCopyScriptToMachine(installerURL,
- buildMachine, buildMachine.getUserHome().append(
- GeneralUtils.DEFAULT_MICA_HIDDEN_PATH), true,
+ buildMachine,
+ MachineUtils.getTemporaryPath(buildMachine), true,
new SubProgressMonitor(monitor, 1));
} catch (MicaException e) {
IStatus status = Activator.createErrorStatus(
@@ -196,18 +196,4 @@
}
return installScript;
}
-
- /**
- * Get the environment block which has proxy variables installed
- * @param factory
- * @return modified {@link IEnvironmentModifierBlock}
- */
- protected IEnvironmentModifierBlock getProxySetupEnvironmentBlock(
- IProcessLauncherFactory factory) {
- IEnvironmentModifierBlock envBlock = factory.defaultEnvironmentModifierBlock();
- ProcessLauncherUtils.defineProxyVariables(envBlock);
- return envBlock;
- }
-
-
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesPackageInstaller.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesPackageInstaller.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/NokiaBinariesPackageInstaller.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -52,7 +52,7 @@
boolean updateLists, boolean forceUpgrade,
int timeout,
IProgressReporter reporter) {
- super(packages, new String[]{repoURL}, null, updateLists, forceUpgrade, timeout, reporter);
+ super(packages, new String[]{repoURL}, null, updateLists, forceUpgrade, true, timeout, reporter);
if(sdkTargets ==null || sdkTargets.isEmpty())
throw new IllegalStateException("SDK target list must contains any sdk target");
@@ -97,7 +97,7 @@
protected IAptPackageManager getPackageManager(IProgressMonitor monitor) {
monitor.beginTask("", 1);
ISDKTarget target = sdkTargetsQueue.peek();
- SDKFactory.getInstance().establishPlatform(target,
+ SDKUtils.establishPlatform(target,
new SubProgressMonitor(monitor, 1));
if (monitor.isCanceled())
return null;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/nokiabin/SDKTargetSelectionPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -30,6 +30,7 @@
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.mica.common.core.sdk.*;
import org.maemo.mica.common.ui.sdk.BuildTargetUI;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
@@ -39,16 +40,10 @@
* @author Fabrício S Epaminondas (UFCG)
*/
public class SDKTargetSelectionPage extends WizardPage {
- /**
- *
- */
- public static final String DIABLO = "DIABLO";
- /**
- *
- */
- public static final String FREMANTLE = "FREMANTLE";
-
- public static final String[] SDK_NAMES = new String[] { DIABLO, FREMANTLE };
+ public static final String[] SDK_NAMES = new String[] {
+ IMaemoSDKPlatform.DIABLO.getName(),
+ IMaemoSDKPlatform.FREMANTLE.getName()
+ };
private CheckboxTreeViewer targetTree;
private Combo fmaemoSDKCombo;
@@ -155,12 +150,11 @@
public void run(IProgressMonitor monitor)
throws InvocationTargetException,
InterruptedException {
- ISDKTarget[] allSDKTargets = SDKFactory.getInstance().getAllSDKTargets();
+ ISDKTarget[] allSDKTargets = SDKManager.getInstance().getAllSDKTargets();
monitor.beginTask("Establishing platforms of sdk targets", allSDKTargets.length);
for (ISDKTarget t : allSDKTargets) {
if (t instanceof IScratchboxSDKTarget)
- SDKFactory.getInstance().establishPlatform(t,
- new SubProgressMonitor(monitor, 1));
+ SDKUtils.establishPlatform(t, new SubProgressMonitor(monitor, 1));
}
}
@@ -193,7 +187,7 @@
//HACK: Get refreshed targets with detected platform
for(int i = 0; i < defaults.length; i++){
ISDKTarget t = defaults[i];
- for(ISDKTarget refreshed : SDKFactory.getInstance().getAllSDKTargets()){
+ for(ISDKTarget refreshed : SDKManager.getInstance().getAllSDKTargets()){
if(t != null && t.compareTo(refreshed) == 0)
defaults[i] = refreshed;
}
@@ -201,7 +195,7 @@
ISDKTarget target = null;
if(defaults.length != 0 && (target = defaults[0]) !=null){
- int index = Arrays.asList(SDK_NAMES).indexOf(target.getPlatform().getName().toUpperCase());
+ int index = Arrays.asList(SDK_NAMES).indexOf(target.getPlatform().getName());
if(index != -1){
fmaemoSDKCombo.select(index);
updateUI();
@@ -320,10 +314,10 @@
static final class Factory {
public static IWizardPage createNextPage(String sdkName, NokiaBinariesInstallWizard wizard) {
IWizardPage page = null;
- if (sdkName != null && sdkName.equalsIgnoreCase(FREMANTLE)) {
+ if (sdkName != null && sdkName.equals(IMaemoSDKPlatform.FREMANTLE.getName())) {
page = new FremantleLicenseAgreementPage(wizard);
}
- if (sdkName != null && sdkName.equalsIgnoreCase(DIABLO)) {
+ if (sdkName != null && sdkName.equals(IMaemoSDKPlatform.DIABLO.getName())) {
page = new DiabloInstallerScriptWorkPage(wizard);
}
return page;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/plugin.xml
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/plugin.xml 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/plugin.xml 2009-07-08 11:19:18 UTC (rev 1854)
@@ -38,7 +38,7 @@
<preferenceSetProvider
defaultsXMLFile="conf/sb2_prefs.xml"
preferenceConstantsClass="org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants"
- preferenceMigratorClass="org.maemo.mica.internal.api.common.core.PreferenceMigratorAdapter"
+ preferenceMigratorClass="org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter"
preferenceStoreBundle="org.maemo.esbox.scratchbox.sb2"
version="17">
</preferenceSetProvider>
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/Activator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/Activator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/Activator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -27,6 +27,8 @@
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
import org.maemo.mica.common.core.preferences.IPreferenceProvider;
import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.sdk.*;
import org.osgi.framework.BundleContext;
@@ -266,9 +268,9 @@
cmdLine.add(1, "-m");
cmdLine.add(2, mode);
}
- ProcessLauncherUtils.launchAndReadStandardStreams(
- sdkTarget.getSDK().getMachineProcessLauncherFactory(),
- cmdLine,
+ IProcessLauncher processLauncher = sdkTarget.getSDK().getMachineProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine));
+ ProcessLauncherUtils.launchAndReadStandardStreams(processLauncher,
new TimeoutProgressMonitor(10 * 1000));
synchronized (activeSessionMap) {
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/AbstractSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/AbstractSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/AbstractSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -10,19 +10,21 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.command;
+import java.security.InvalidParameterException;
+import java.util.Arrays;
+
import org.eclipse.core.runtime.IProgressMonitor;
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants;
import org.maemo.esbox.scratchbox.core.command.AbstractSDKCommand;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.TimeoutProgressMonitor;
-import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
-import java.security.InvalidParameterException;
-import java.util.Arrays;
-import java.util.List;
-
public abstract class AbstractSb2Command extends AbstractSDKCommand {
private final IProcessLauncherFactory processLauncherFactory;
@@ -52,13 +54,13 @@
return replaceScratchboxCommand(sboxCommand, action, options);
}
- protected Results runProcess(String...args) throws MicaException{
+ protected LaunchResults runProcess(String...args) throws MicaException{
return runProcess(this.processLauncherFactory,args);
}
- protected Results runProcess( IProgressMonitor monitor,String...args) throws MicaException{
- List<String> cli = Arrays.asList(args);
- IProcessLauncher launcher = processLauncherFactory.createProcessLauncher(null, cli,null);
+ protected LaunchResults runProcess( IProgressMonitor monitor,String...args) throws MicaException{
+ IProcessLauncher launcher = processLauncherFactory.createProcessLauncher(
+ ProcessLauncherParameters.create(args));
return ProcessLauncherUtils.launchAndReadStandardStreams(launcher, monitor);
}
@@ -69,11 +71,12 @@
* @return Results of the process execution
* @throws MicaException
*/
- public static Results runProcess(IProcessLauncherFactory processLauncherFactory,String...args)throws MicaException{
+ public static LaunchResults runProcess(IProcessLauncherFactory processLauncherFactory,String...args)throws MicaException{
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(
+ ProcessLauncherParameters.create(Arrays.asList(args)));
+
return ProcessLauncherUtils.launchAndReadStandardStreams(
- processLauncherFactory,
- Arrays.asList(args),
- new TimeoutProgressMonitor(60 * 1000));
+ processLauncher, new TimeoutProgressMonitor(60 * 1000));
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateMaemoRootstrapSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateMaemoRootstrapSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateMaemoRootstrapSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -18,9 +18,9 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.console.CoreConsoleManager;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProxyUtils;
import org.maemo.mica.common.core.sdk.ISDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import java.util.ArrayList;
import java.util.List;
@@ -75,14 +75,14 @@
params.add(targetName);
IEnvironmentModifierBlock envBlock = commandAbstractor
- .getProcessLauncherFactory().defaultEnvironmentModifierBlock();
- ProcessLauncherUtils.defineProxyVariables(envBlock);
+ .getProcessLauncherFactory().getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(envBlock);
setMonitorAndConsole(monitor, CoreConsoleManager.getInstance().getConsole(true,
null, "Installing rootstrap " + targetName));
doPerformCommand(params, envBlock, 0);
- SDKFactory.getInstance().refresh(false);
+ SDKManagerInternal.getInstance().refresh(false);
return true;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateTargetSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateTargetSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/CreateTargetSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,17 +11,21 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.command;
+import java.util.List;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants;
-import org.maemo.esbox.internal.scratchbox.sb2.Activator;
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ShellTemplateSubstitutor;
import org.maemo.mica.common.core.sdk.ISDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
-import java.util.List;
-
/**
* Creates a new target, if it does not exist. This command wraps the callback
* to service:
@@ -78,25 +82,24 @@
List<String> cmdLine = CommandLineArguments
.createFromCommandLine(pattern);
- IProcessLauncher processLauncher = ProcessLauncherCreator
- .createProcessLauncher(commandAbstractor
- .getProcessLauncherFactory(), null, cmdLine);
+ IProcessLauncher processLauncher = commandAbstractor
+ .getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine));
- Process process = processLauncher.createProcess();
+ ProcessLauncherUtils.queueConsoleMonitor(processLauncher, true, null,
+ "Installing scratchbox2 target " + targetName);
+
+ int exit = ProcessLauncherUtils.launchAndMonitorStandardStreams(
+ processLauncher,
+ null,
+ new NullProgressMonitor());
- processLauncher.redirectToConsole(true, null,
- "Installing scratchbox2 target " + targetName);
-
- try {
- process.waitFor();
- } catch (InterruptedException e) {
- Activator.getErrorLogger().logError("Target installation aborted",
- e);
- }
-
sdk.refresh();
- SDKFactory.getInstance().fireListeners();
+ SDKManager.getInstance().fireListeners();
+ if (exit != 0) {
+ throw new MicaException("Scratchbox 2 target installation failed with exit code " + exit);
+ }
return true;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListAvailableMaemoRootstrapsSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListAvailableMaemoRootstrapsSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListAvailableMaemoRootstrapsSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,7 +20,7 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.process.CommandLineArguments;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProxyUtils;
import java.util.ArrayList;
import java.util.List;
@@ -62,8 +62,8 @@
// ensure the proxy is established
IEnvironmentModifierBlock proxyEnvBlock = commandAbstractor
- .getProcessLauncherFactory().defaultEnvironmentModifierBlock();
- ProcessLauncherUtils.defineProxyVariables(proxyEnvBlock);
+ .getProcessLauncherFactory().getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(proxyEnvBlock);
List<String> available = doPerformCommand(
CommandLineArguments.createFromCommandLine(availableAction),
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListCputranspSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListCputranspSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListCputranspSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,16 +11,19 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.command;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.Path;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IPath;
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.machine.IMachine;
+import org.maemo.mica.common.core.machine.MachineUtils;
-import java.util.*;
-
/**
* List the installed compilers. There's no known command for this, but we can
* look in specific places.
@@ -28,8 +31,11 @@
*/
public class ListCputranspSb2Command extends AbstractSb2Command {
- public ListCputranspSb2Command(ICommandAbstractor commandAbstractor) {
+ private final IMachine machine;
+
+ public ListCputranspSb2Command(ICommandAbstractor commandAbstractor, IMachine machine) {
super(commandAbstractor);
+ this.machine = machine;
}
/*
@@ -50,25 +56,11 @@
Set<String> expected = new HashSet<String>();
expected.add("sb2-qemu-arm");
expected.add("sbrsh");
-
- Properties env = ProcessLauncherUtils
- .getSynthesizedEnvironment(commandAbstractor
- .getProcessLauncherFactory());
- String pathenv = env.getProperty("PATH");
- if (pathenv == null) {
- pathenv = "/usr/bin:/bin"; // XXX
- }
- if (pathenv != null) {
- String[] paths = pathenv.split(":");
- for (String exp : expected) {
- for (String path : paths) {
- IFileStore bin = commandAbstractor.getFileSystemAccess()
- .getFileStore(new Path(path).append(exp));
- if (bin.fetchInfo().exists()) {
- cputranspAvailable.add(bin.toURI().getPath());
- break;
- }
- }
+
+ for (String exp : expected) {
+ IPath path = MachineUtils.findProgramOnPath(machine, exp);
+ if (path != null) {
+ cputranspAvailable.add(path.toPortableString());
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListTargetsCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListTargetsCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ListTargetsCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -12,17 +12,19 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.command;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants;
import org.maemo.esbox.scratchbox.core.command.ScratchboxInvalidParameterException;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
-import java.util.*;
-
/**
* List the installed targets. This command wraps the callback to service (sb1)
* sb-conf list --targets or sb2-config -l (sb2)
@@ -56,9 +58,9 @@
String listTargetsCommandString = this.replaceScratchboxConfigCommand(
listAction, new String[] { targetsOption });
- Results results = ProcessLauncherUtils.launchAndReadStandardStreams(
- ProcessLauncherCreator.createProcessLauncher(commandAbstractor.getProcessLauncherFactory(),
- listTargetsCommandString),
+ LaunchResults results = ProcessLauncherUtils.launchAndReadStandardStreams(
+ commandAbstractor.getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(listTargetsCommandString)),
null);
List<String> targetsAvailable;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoRootstrapCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoRootstrapCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoRootstrapCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -16,7 +16,7 @@
import org.maemo.mica.common.core.ICache;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import java.util.*;
@@ -85,7 +85,7 @@
* @return
*/
public List<String> list(int type, IProgressMonitor monitor) throws MicaException{
- Results result = null;
+ LaunchResults result = null;
switch(type){
case INSTALLED_TARGETS:
result = runProcess(monitor,MAEMO_ROOTSTRAP,COMMAND_LIST);
@@ -106,7 +106,7 @@
* @throws MicaException
*/
public void remove(String name, IProgressMonitor monitor) throws MicaException{
- Results results = runProcess(monitor, MAEMO_ROOTSTRAP, OPTION_FORCE, COMMAND_REMOVE, name);
+ LaunchResults results = runProcess(monitor, MAEMO_ROOTSTRAP, OPTION_FORCE, COMMAND_REMOVE, name);
if(results.exitCode!=0)
throw new MicaException(results.reportResults("Error removing rootstrap"));
}
@@ -127,7 +127,7 @@
if (location == null) {
// do the hard work
- Results result = runProcess(MAEMO_ROOTSTRAP,PATH,name);
+ LaunchResults result = runProcess(MAEMO_ROOTSTRAP,PATH,name);
if (result.exitCode != 0) {
throw new MicaException(result.reportResults("Cannot determine rootstrap location for " + name));
}
@@ -159,7 +159,7 @@
if (arch == null) {
// do the hard work
- Results result = runProcess(MAEMO_ROOTSTRAP,ARCH,name);
+ LaunchResults result = runProcess(MAEMO_ROOTSTRAP,ARCH,name);
if(result.exitCode==0)
arch = result.stdout.trim(); // remove \r and \n and anything else
else
@@ -181,7 +181,7 @@
* @throws MicaException
*/
public boolean newRootstrap(String name) throws MicaException {
- Results result = runProcess(MAEMO_ROOTSTRAP,COMMAND_NEW,name);
+ LaunchResults result = runProcess(MAEMO_ROOTSTRAP,COMMAND_NEW,name);
return result.exitCode==0;
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,7 +13,7 @@
import org.maemo.esbox.internal.api.scratchbox.core.commands.ICommandAbstractor;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import java.util.Arrays;
import java.util.List;
@@ -72,7 +72,7 @@
* @throws MicaException
*/
public boolean isUp(String targetName) throws MicaException{
- Results result = runProcess(MAEMO_SDK,COMMAND_SHOW,SPECIFIER_GUI,targetName);
+ LaunchResults result = runProcess(MAEMO_SDK,COMMAND_SHOW,SPECIFIER_GUI,targetName);
return result.stdout.replaceAll("\\n", "").toLowerCase().equals(STATUS_UP);
}
@@ -82,7 +82,7 @@
* @throws MicaException
*/
public String getDefaultRootstrap() throws MicaException{
- Results result = runProcess(MAEMO_SDK,COMMAND_SHOW,SPECIFIER_ROOTSTRAP);
+ LaunchResults result = runProcess(MAEMO_SDK,COMMAND_SHOW,SPECIFIER_ROOTSTRAP);
return result.stdout;
}
@@ -92,7 +92,7 @@
* @throws MicaException
*/
public List<String> listCompilers() throws MicaException{
- Results result = runProcess(MAEMO_SDK,COMMAND_LIST,SPECIFIER_TOOLCHAINS);
+ LaunchResults result = runProcess(MAEMO_SDK,COMMAND_LIST,SPECIFIER_TOOLCHAINS);
return Arrays.asList(result.getStdoutLines());
}
@@ -100,7 +100,7 @@
* maemo-sdk show tools
*/
public String getTools() throws MicaException{
- Results result = runProcess(MAEMO_SDK, COMMAND_SHOW, SPECIFIER_TOOLS);
+ LaunchResults result = runProcess(MAEMO_SDK, COMMAND_SHOW, SPECIFIER_TOOLS);
return result.stdout.trim();
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/RemoveMaemoRootstrapSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/RemoveMaemoRootstrapSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/RemoveMaemoRootstrapSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -19,7 +19,7 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.console.CoreConsoleManager;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.ProxyUtils;
import java.util.ArrayList;
import java.util.List;
@@ -72,8 +72,8 @@
commands.add(targetName);
IEnvironmentModifierBlock envBlock = commandAbstractor
- .getProcessLauncherFactory().defaultEnvironmentModifierBlock();
- ProcessLauncherUtils.defineProxyVariables(envBlock);
+ .getProcessLauncherFactory().getDefaultEnvironmentModifierBlock();
+ ProxyUtils.defineProxyVariables(envBlock);
setMonitorAndConsole(monitor, CoreConsoleManager.getInstance().getConsole(true,
null, "Removing rootstrap " + targetName));
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ShowPathMappingSb2Command.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ShowPathMappingSb2Command.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/ShowPathMappingSb2Command.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -19,8 +19,8 @@
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
-import java.io.ByteArrayOutputStream;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -52,21 +52,16 @@
.getPreferenceValue(SB2PreferenceConstants.SB2_SB2_SHOW_PATH_ACTION));
cmdLine.addAll(params);
- IProcessLauncher launcher = ProcessLauncherCreator
- .createProcessLauncher(commandAbstractor
- .getProcessLauncherFactory(), null, cmdLine);
+ IProcessLauncher launcher = commandAbstractor.getProcessLauncherFactory().
+ createProcessLauncher(ProcessLauncherParameters.create(cmdLine));
- launcher.createProcess();
+ LaunchResults results = ProcessLauncherUtils.launchAndReadStandardStreams(launcher, null);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ByteArrayOutputStream err = new ByteArrayOutputStream();
- int exit = launcher.waitAndRead(out, err);
-
- if (exit != 0)
+ if (results.exitCode != 0)
throw new ScratchboxException(
- "Cannot resolve scratchbox2 path mappings:\n" + out + err);
+ results.reportResults("Cannot resolve scratchbox2 path mappings"));
- String resolveInfo = out.toString().trim();
+ String resolveInfo = results.stdout.toString().trim();
String[] lines = resolveInfo.split("\r\n|\r|\n");
Map<IPath, IPath> result = new HashMap<IPath, IPath>(lines.length);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -26,7 +26,7 @@
import org.maemo.mica.common.core.machine.*;
import org.maemo.mica.common.core.preferences.IPreferenceProvider;
import org.maemo.mica.common.core.sdk.*;
-import org.maemo.mica.internal.api.common.core.sdk.BaseSDKPlatform;
+import org.maemo.mica.internal.api.common.core.sdk.SDKPlatform;
import org.maemo.mica.maemosdk.core.*;
import java.text.MessageFormat;
@@ -45,12 +45,11 @@
private static final IPath ROOT_PATH = new Path("/");
public static Pattern TARGET_PLATFORM_VERSION_ARCHITECTURE_PATTERN = Pattern
- .compile("([a-zA-Z_]+)([\\d.A-Za-z]+)_([a-zA-Z\\d]+)");
+ .compile("([a-zA-Z_]+)([\\d.A-Za-z_]+)_([a-zA-Z\\d]+)");
public Scratchbox2SDK(IMachine machine, IPath installLocation,
- String version,
IPreferenceProvider prefProvider) throws MicaException {
- super(machine, installLocation, version, "Scratchbox 2", 2);
+ super(machine, installLocation, "Scratchbox 2", 2);
this.prefProvider = prefProvider;
}
@@ -195,7 +194,7 @@
public List<String> getCputransp() throws MicaException {
ensureRealized();
ListCputranspSb2Command listCputranspCommand = new ListCputranspSb2Command(
- getCommandAbstractor());
+ getCommandAbstractor(), getMachine());
return listCputranspCommand.performCommand(EMPTY_ARGS);
}
@@ -287,16 +286,16 @@
IMaemoSDKPlatform info = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform);
if (info != null) {
if (!ISDKPlatform.VERSION_UNKNOWN.equals(version)) {
- return MaemoSDKPlatformEngine.getInstance().createWithVersion(info, version);
+ return MaemoSDKPlatformEngine.createWithVersion(info, version);
} else {
return info;
}
}
// unknown platform
- return new BaseSDKPlatform(ISDKPlatform.NAME_UNKNOWN, version);
+ return new SDKPlatform(ISDKPlatform.NAME_UNKNOWN, version);
} else {
- return new BaseSDKPlatform(ISDKPlatform.NAME_UNKNOWN,
+ return new SDKPlatform(ISDKPlatform.NAME_UNKNOWN,
ISDKPlatform.VERSION_UNKNOWN);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDKTarget.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDKTarget.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDKTarget.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -39,6 +39,8 @@
private static final String PATH_MAPPINGS_MAP = "pathMappings.";
private IPath targetRoot;
private IPath rootstrapRoot;
+ private Scratchbox2ProcessLauncherFactory buildProcessLauncherFactory;
+ private IProcessLauncherFactory emulateProcessLauncherFactory;
public Scratchbox2SDKTarget(Scratchbox2SDK sdk, ISDKPlatform platform,
String architecture, String target) throws MicaException {
@@ -69,22 +71,6 @@
* @seeorg.maemo.esbox.maemosdk.core.sdk.IScratchboxSDKTarget#
* getProcessLauncherFactoryForInstall()
*/
- public IProcessLauncherFactory getProcessLauncherFactoryForInstall() {
- // install mode needs to be a different mapping and also run as root
- return new Scratchbox2ProcessLauncherFactory(this,
- SB2PreferenceConstants.SB2_EMULATE_MAPPING_MODE, true);
- }
-
-
-
-
- public IProcessLauncherFactory getMaemoLauncherFactory() {
- return new Scratchbox2ProcessLauncherFactory(this,
- SB2PreferenceConstants.SB2_EMULATE_MAPPING_MODE, false);
- }
-
-
-
/*
* (non-Javadoc)
*
@@ -104,14 +90,32 @@
* @see org.maemo.mica.common.core.sdk.ISDKTarget#getProcessLauncherFactory()
*/
public IProcessLauncherFactory getProcessLauncherFactory() {
- // default is build mode
- return new Scratchbox2ProcessLauncherFactory(this,
+ if (buildProcessLauncherFactory == null) {
+ // default is build mode
+ buildProcessLauncherFactory = new Scratchbox2ProcessLauncherFactory(this,
SB2PreferenceConstants.SB2_MAPPING_MODE, false);
+ }
+ return buildProcessLauncherFactory;
}
/*
* (non-Javadoc)
*
+ * @seeorg.maemo.esbox.maemosdk.core.sdk.IScratchboxSDKTarget#
+ * getProcessLauncherFactoryForInstall()
+ */
+ public IProcessLauncherFactory getProcessLauncherFactoryForInstall() {
+ if (emulateProcessLauncherFactory == null) {
+ // install mode needs to be a different mapping and also run as root
+ emulateProcessLauncherFactory = new Scratchbox2ProcessLauncherFactory(this,
+ SB2PreferenceConstants.SB2_EMULATE_MAPPING_MODE, true);
+ }
+ return emulateProcessLauncherFactory;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.maemo.mica.common.core.sdk.ISDKTarget#getSDKTargetRoot()
*/
public IPath getSDKTargetRoot() {
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -18,7 +18,6 @@
* @author baranov
*
*/
- at SuppressWarnings("unchecked")
public class Sb2MaemoLauncherAdapterFactory implements IAdapterFactory {
private static final Class<IMaemoLauncherAdapter> MAEMO_LAUNCHER_ADAPTER = IMaemoLauncherAdapter.class;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2EnvironmentProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2EnvironmentProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2EnvironmentProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -18,9 +18,10 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.env.EnvironmentProperties;
import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.internal.api.common.core.IStandardEnvironmentProvider;
+import org.maemo.mica.internal.api.common.core.env.IStandardEnvironmentProvider;
+import org.maemo.mica.internal.api.common.core.machine.IMachineImpl;
import java.util.*;
@@ -62,20 +63,20 @@
// gather arguments by querying a typical shell launched in POSIX
// mode (sh instead of bash)
Scratchbox2ProcessLauncher launcher = new Scratchbox2ProcessLauncher(
- sdkTarget, null, CommandLineArguments.createFromVarArgs(
- "sh", "-c", "set"), null,
+ sdkTarget, ProcessLauncherParameters.create("sh", "-c", "set"),
SB2PreferenceConstants.SB2_MAPPING_MODE, false);
try {
- Results results = ProcessLauncherUtils
- .launchAndReadStandardStreams(launcher, null);
+ LaunchResults results = ProcessLauncherUtils.launchAndReadStandardStreams(
+ launcher, null);
standardEnv = EnvironmentProperties
.createFromShellEnvDump(results.stdout);
} catch (MicaException e) {
Activator.getErrorLogger().logError(
"Failed to read scratchbox environment; using system environment",
e);
- standardEnv = sdkTarget.getMachine().getStandardEnvironment();
+ standardEnv = ((IMachineImpl)sdkTarget.getMachine()).
+ getStandardEnvironmentProvider().getRawEnvironment();
}
cachedStdEnvMap.put(sdkTarget, standardEnv);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,17 +11,19 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.launcher;
-import org.eclipse.core.runtime.IPath;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
import org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants;
import org.maemo.esbox.internal.scratchbox.sb2.Activator;
import org.maemo.esbox.internal.scratchbox.sb2.core.Scratchbox2SDKTarget;
-import org.maemo.esbox.scratchbox.sb2.sdk.IScratchbox2SDKTarget;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.process.AbstractSDKTargetProcessLauncher;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ShellTemplateSubstitutor;
-import java.util.List;
-
/**
* For SB 2, launching is easy and follows the same pattern as a normal program
* invocation.
@@ -29,47 +31,28 @@
* @author eswartz
*
*/
-public class Scratchbox2ProcessLauncher extends BaseSDKTargetProcessLauncher implements
+public class Scratchbox2ProcessLauncher extends AbstractSDKTargetProcessLauncher implements
IProcessLauncher {
private Scratchbox2SDKTarget sdkTarget;
- private List<String> originalCmdLine;
+ private final String modeKey;
+ private final boolean runAsRoot;
public Scratchbox2ProcessLauncher(Scratchbox2SDKTarget sdkTarget,
- IPath workingDirectory, List<String> cmdLine,
- IEnvironmentModifierBlock environmentModifierBlock, String modeKey,
+ ProcessLauncherParameters params, String modeKey,
boolean runAsRoot) {
- super(encodeArgumentArray(sdkTarget, cmdLine, modeKey,runAsRoot),
- environmentModifierBlock, workingDirectory,
- sdkTarget);
- if (sdkTarget == null)
- throw new IllegalArgumentException();
+ super(params, sdkTarget);
+ this.modeKey = modeKey;
+ this.runAsRoot = runAsRoot;
this.sdkTarget = sdkTarget;
- this.originalCmdLine = cmdLine;
}
/* (non-Javadoc)
- * @see org.maemo.mica.common.core.process.BaseProcessLauncher#getCommandLineString()
+ * @see org.maemo.mica.common.core.process.BaseSDKTargetProcessLauncher#encodeLaunchParameters(org.maemo.mica.common.core.process.ProcessLauncherParameters)
*/
@Override
- public String getCommandLineString() {
- return CommandLineArguments.toCommandLine(originalCmdLine);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.maemo.mica.internal.common.core.BaseProcessLauncher#getLaunchInfoPrefix()
- */
- @Override
- protected String getLaunchInfoPrefix() {
- return sdkTarget + " ";
- }
+ public ProcessLauncherParameters encodeLaunchParameters(ProcessLauncherParameters params) {
- private static List<String> encodeArgumentArray(IScratchbox2SDKTarget sdkTarget,
- List<String> cmdLine, String modeKey,boolean runAsRoot) {
-
// Encode the launch command by replacing the arguments
// representing template arguments with the actual values.
//
@@ -88,6 +71,7 @@
substitutor.define("SESSION_FILE", ".dummy-session-see-error-log");
}
+ List<String> cmdLine = params.getCommandLine();
substitutor.define("COMMAND", cmdLine.get(0));
substitutor.define("ARGS", CommandLineArguments.toCommandLine(cmdLine
.subList(1, cmdLine.size())));
@@ -101,7 +85,6 @@
}
String mapMode = sdkTarget.getPreferenceValue(modeKey);
- //TODO: fix mapping mode
substitutor.define("MAPPING_MODE", mapMode);
// get the Scratchbox invocation pattern
@@ -111,9 +94,10 @@
// replace variables
commandPattern = substitutor.substitute(commandPattern);
- List<String> commandArgs = CommandLineArguments
- .createFromCommandLine(commandPattern);
- return commandArgs;
+ return ProcessLauncherParameters.create(
+ params.getWorkingDirectory(),
+ CommandLineArguments.createFromCommandLine(commandPattern),
+ params.getEnvironmentModifierBlock());
}
@Override
@@ -128,12 +112,8 @@
* @see org.maemo.mica.internal.common.core.BaseProcessLauncher#doCreateProcess()
*/
@Override
- protected Process doCreateProcess() throws Exception {
+ protected Process doCreateProcess(ProcessLauncherParameters params, IProgressMonitor monitor) throws Exception {
sdkTarget.ensureRealized();
-
- return sdkTarget.getMachine().createProcess(
- getLaunchCurrentWorkingDirectory(),
- getLaunchCommandArguments(),
- getLaunchEnvironmentModifierBlock(), isUsePTY());
+ return sdkTarget.getMachine().createProcess(params, monitor);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncherFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncherFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncherFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,20 +11,17 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb2.launcher;
-import org.eclipse.core.runtime.IPath;
import org.maemo.esbox.internal.scratchbox.sb2.core.Scratchbox2SDKTarget;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
+import org.maemo.mica.common.core.process.AbstractProcessLauncherFactory;
import org.maemo.mica.common.core.process.IProcessLauncher;
-import org.maemo.mica.internal.api.common.core.BaseProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
-import java.util.List;
-
/**
* @author eswartz
*
*/
public class Scratchbox2ProcessLauncherFactory extends
- BaseProcessLauncherFactory {
+ AbstractProcessLauncherFactory {
protected Scratchbox2SDKTarget sdkTarget;
private String mappingModeKey;
@@ -43,7 +40,7 @@
*/
public Scratchbox2ProcessLauncherFactory(Scratchbox2SDKTarget sdkTarget,
String mappingModeKey, boolean runAsRoot) {
- super(new Scratchbox2EnvironmentProvider(sdkTarget), false);
+ super();
if (sdkTarget == null)
throw new IllegalArgumentException();
this.sdkTarget = sdkTarget;
@@ -51,20 +48,9 @@
this.runAsRoot = runAsRoot;
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.maemo.mica.common.core.IProcessLauncherFactory#createProcessLauncher(org
- * .eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath,
- * org.maemo.mica.common.core.List<String>, java.util.Properties)
- */
- protected IProcessLauncher doCreateProcessLauncher(IPath workingDirectory,
- List<String> cmdLine,
- IEnvironmentModifierBlock environmentModifierBlock) {
+ protected IProcessLauncher doCreateProcessLauncher(ProcessLauncherParameters params) {
- return new Scratchbox2ProcessLauncher(sdkTarget, workingDirectory,
- cmdLine, environmentModifierBlock, mappingModeKey, runAsRoot);
+ return new Scratchbox2ProcessLauncher(sdkTarget, params, mappingModeKey, runAsRoot);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/provider/Scratchbox2SDKProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/provider/Scratchbox2SDKProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/provider/Scratchbox2SDKProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -145,7 +145,7 @@
IPath installRoot = new Path("/usr/bin");
Scratchbox2SDK sdk = new Scratchbox2SDK(machine,
- installRoot, null, prefProvider);
+ installRoot, prefProvider);
// see if the right programs seem to exist
MachineUtils.acquireMachine(machine, new SubProgressMonitor(monitor, 8));
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/preferences/Scratchbox2PreferencesPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/preferences/Scratchbox2PreferencesPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/preferences/Scratchbox2PreferencesPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -19,7 +19,7 @@
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.maemo.esbox.internal.api.scratchbox.sb2.core.SB2PreferenceConstants;
import org.maemo.esbox.internal.scratchbox.sb2.IHelpID;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.common.ui.utils.MaemoPreferencesUtils;
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
@@ -141,7 +141,7 @@
@Override
public boolean performOk() {
if (refreshOnApply) {
- SDKFactory.getInstance().refresh(false);
+ SDKManagerInternal.getInstance().refresh(false);
refreshOnApply = false;
}
return super.performOk();
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/wizard/NewScratchbox2TargetWizard.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/wizard/NewScratchbox2TargetWizard.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/ui/wizard/NewScratchbox2TargetWizard.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -30,7 +30,6 @@
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchWizard;
-import org.maemo.esbox.internal.api.scratchbox.ui.wizards.TargetWizardPageFactory;
import org.maemo.esbox.internal.scratchbox.sb2.Activator;
import org.maemo.esbox.internal.scratchbox.sb2.IHelpID;
import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxException;
@@ -40,13 +39,13 @@
import org.maemo.mica.common.core.ErrorLogger;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
+import org.maemo.mica.internal.api.maemosdk.ui.wizards.BadInstallationPage;
import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
/**
- * The target wizard provides a easy way to create a target for Scratchbox. As
- * Scratchbox target configuration, the user can configure your target.
+ * This target wizard installs a Scratchbox 2 target by installing a rootstrap.
*
*/
public class NewScratchbox2TargetWizard extends Wizard implements INewWizard {
@@ -65,7 +64,7 @@
public NewScratchbox2TargetWizard() {
super();
// TODO: support multiple installations?
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
List<IScratchbox2SDK> sdks = ScratchboxSDKFacade.getInstance().getScratchboxSDK(IScratchbox2SDK.class);
if (sdks.size() > 0)
sdk = sdks.get(0);
@@ -94,8 +93,7 @@
maemoRootstrapPage = new TargetWizardRootstrapSb2Page(sdk);
addPage(maemoRootstrapPage);
} else {
- addPage(TargetWizardPageFactory.getInstance()
- .createBadInstallationPage());
+ addPage(new BadInstallationPage());
}
}
@@ -177,7 +175,7 @@
true, new SubProgressMonitor(monitor, 1));
sdk.refresh();
- SDKFactory.getInstance().fireListeners();
+ SDKManager.getInstance().fireListeners();
createdTarget = sdk.findSDKTarget(targetName);
} catch (MicaException e) {
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/build.properties
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/build.properties 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/build.properties 2009-07-08 11:19:18 UTC (rev 1854)
@@ -3,5 +3,4 @@
bin.includes = META-INF/,\
.,\
plugin.xml,\
- test.xml,\
data/
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,7 +17,7 @@
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.machine.MachineUtils;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.TestMachineUtils;
import junit.framework.Test;
@@ -41,7 +41,7 @@
}
} catch (MicaException e) {
}
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
TestSuite suite = new TestSuite(
"Test for org.maemo.esbox.scratchbox.tests");
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1ProcessLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1ProcessLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1ProcessLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -10,22 +10,32 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.tests;
-import org.eclipse.core.runtime.*;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
import org.junit.Test;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDK;
import org.maemo.esbox.internal.scratchbox.sb1.provider.Scratchbox1SDKProvider;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.env.EnvironmentManager;
+import org.maemo.mica.common.core.env.EnvironmentModifierBlock;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.sdk.*;
+import org.maemo.mica.common.core.process.AbstractProcessLauncher;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
+import org.maemo.mica.common.core.sdk.ISDK;
+import org.maemo.mica.common.core.sdk.ISDKProvider;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.TestUtils;
import org.maemo.mica.common.core.tests.core.TestProcessLauncher;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
-import java.io.ByteArrayOutputStream;
-import java.util.Collections;
-import java.util.List;
-
/**
* If SB1 is installed, make sure its SDKs and targets are properly detected,
* and that it launches processes in the expected way
@@ -40,8 +50,9 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- SDKFactory factory = SDKFactory.getInstance();
-
+ SDKManager factory = SDKManagerInternal.getInstance();
+ factory.waitForRefreshComplete(null);
+
List<ISDKProvider> providers = factory.getSDKProviders();
assertNotNull(providers);
@@ -70,7 +81,7 @@
else
sdks = sb1Provider.createSDKs(null);
}
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
return sdks;
}
@@ -88,11 +99,14 @@
runOverTargets(new IRunner() {
public void run(ISDKTarget target) throws Exception {
+ ProcessLauncherParameters params = ProcessLauncherParameters.create("ls");
IProcessLauncherFactory processLauncherFactory = target
.getProcessLauncherFactory();
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(
- processLauncherFactory, "ls");
- List<String> args = processLauncher.getLaunchCommandArguments();
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(params);
+
+ ProcessLauncherParameters encodedParameters = ((AbstractProcessLauncher) processLauncher).encodeLaunchParameters(
+ params);
+ List<String> args = encodedParameters.getCommandLine();
assertNotNull(args);
// be sure no variables are left unexpanded
@@ -113,29 +127,31 @@
public void run(ISDKTarget target) throws Exception {
IProcessLauncherFactory processLauncherFactory = target
.getProcessLauncherFactory();
- IEnvironmentModifierBlock envVars = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
+ IEnvironmentModifierBlock envVars = new EnvironmentModifierBlock();
envVars.define("CC", "gcc");
envVars.define("LDFLAGS", "-lm");
envVars.define("SPACEY", "a b c");
envVars.define("WILD", "*");
envVars.undefine("FOOBAR");
IPath tempPath = new Path("/tmp");
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(processLauncherFactory,
- tempPath,
- "./configure", CommandLineArguments.createFromVarArgs(
+
+ ProcessLauncherParameters params = ProcessLauncherParameters.create(
+ tempPath,
+ CommandLineArguments.createFromVarArgs("./configure",
"--enable-maintainer-mode",
- "--disable-gtk"), envVars);
+ "--disable-gtk"), envVars);
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(params);
+ ProcessLauncherParameters encodedParameters = ((AbstractProcessLauncher) processLauncher).encodeLaunchParameters(
+ params);
// the env vars are encoded into run.sh, not passed outside the
// process
- IEnvironmentModifierBlock launchEnvironment = processLauncher
- .getLaunchEnvironmentModifierBlock();
+ IEnvironmentModifierBlock launchEnvironment = encodedParameters.getEnvironmentModifierBlock();
assertNull(launchEnvironment);
- List<String> args = processLauncher.getLaunchCommandArguments();
+ // be sure no variables are left unexpanded
+ List<String> args = encodedParameters.getCommandLine();
assertNotNull(args);
-
- // be sure no variables are left unexpanded
assertFalse(CommandLineArguments.toCommandLine(args),
CommandLineArguments.toCommandLine(args).contains("${"));
@@ -164,23 +180,20 @@
runOverTargets(new IRunner() {
public void run(ISDKTarget target) throws Exception {
- IEnvironmentModifierBlock envVars = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
+ IEnvironmentModifierBlock envVars = new EnvironmentModifierBlock();
envVars.define("DISPLAY", ":2");
envVars.define("ESBOXOVERRIDE", "launch_override");
envVars.define("PASSEDIN", "launch_passedin");
String cmdText = "echo $DISPLAY,$ESBOXONLY,$ESBOXOVERRIDE,$PASSEDIN";
- IProcessLauncher processLauncher = createAndLaunchStockProcessForScript(
+ LaunchResults results = createAndLaunchStockProcessForScript(
target, null, cmdText, envVars);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ByteArrayOutputStream err = new ByteArrayOutputStream();
- int exit = processLauncher.waitAndRead(out, err);
- assertEquals(0, exit);
+ assertEquals(0, results.exitCode);
- assertEquals("", err.toString());
- assertEquals(":2,,launch_override,launch_passedin", out.toString().trim());
+ assertEquals("", results.stderr.toString());
+ assertEquals(":2,,launch_override,launch_passedin", results.stdout.toString().trim());
}
});
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -32,10 +32,11 @@
import org.maemo.mica.common.core.sdk.ISDKPlatform;
import org.maemo.mica.common.core.sdk.ISDKProvider;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.StdoutProgressReporter;
import org.maemo.mica.common.core.tests.TestUtils;
import org.maemo.mica.common.core.tests.core.BaseTest;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.maemosdk.core.*;
/**
@@ -55,7 +56,7 @@
IPreferenceStore store = CorePreferenceManager.getInstance().getPreferenceStore(SB1PreferenceConstants.SB1_ROOTS);
store.setValue(SB1PreferenceConstants.SB1_ROOTS, "/scratchbox:/opt/scratchbox");
- SDKFactory factory = SDKFactory.getInstance();
+ SDKManager factory = SDKManagerInternal.getInstance();
List<ISDKProvider> providers = factory.getSDKProviders();
assertNotNull(providers);
@@ -284,8 +285,8 @@
if (!ISDKPlatform.NAME_UNKNOWN.equals(platform.getName())) {
IMaemoSDKPlatform maemoPlatform = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform.getName());
assertNotNull("Should be registered platform: " + platform.getName(), maemoPlatform);
- assertTrue("Should be compatible version: " + platform.getVersion(),
- platform.getVersion().startsWith(maemoPlatform.getVersion()));
+ assertTrue("Should be compatible version: " + platform.getVersionString(),
+ platform.getVersionString().startsWith(maemoPlatform.getVersionString()));
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2ProcessLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -22,10 +22,11 @@
import org.maemo.mica.common.core.preferences.CorePreferenceConstants;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import org.maemo.mica.common.core.sdk.*;
import org.maemo.mica.common.core.tests.TestUtils;
import org.maemo.mica.common.core.tests.core.TestProcessLauncher;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import java.io.OutputStream;
import java.util.Collections;
@@ -50,7 +51,7 @@
preferenceStore.setValue(
CorePreferenceConstants.LOG_COMMANDS, true);
- SDKFactory factory = SDKFactory.getInstance();
+ SDKManager factory = SDKManagerInternal.getInstance();
List<ISDKProvider> providers = factory.getSDKProviders();
assertNotNull(providers);
@@ -80,7 +81,7 @@
else
sdks = sb2Provider.createSDKs(new NullProgressMonitor());
}
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
return sdks;
}
@@ -101,8 +102,12 @@
public void run(ISDKTarget target) throws Exception {
IProcessLauncherFactory processLauncherFactory = target
.getProcessLauncherFactory();
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(processLauncherFactory, "ls");
- List<String> args = processLauncher.getLaunchCommandArguments();
+ ProcessLauncherParameters params = ProcessLauncherParameters.create("ls");
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(params);
+
+ ProcessLauncherParameters encodedParameters = ((AbstractProcessLauncher) processLauncher).encodeLaunchParameters(
+ params);
+ List<String> args = encodedParameters.getCommandLine();
assertNotNull(args);
// be sure no variables are left unexpanded
@@ -147,12 +152,13 @@
IProcessLauncherFactory processLauncherFactory = target
.getProcessLauncherFactory();
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(
- processLauncherFactory,
- targetTmpDir,
- CommandLineArguments.createFromVarArgs("/bin/cat", "test.txt"));
+ IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(
+ ProcessLauncherParameters.create(
+ targetTmpDir,
+ CommandLineArguments.createFromVarArgs("/bin/cat", "test.txt")));
- Results results = ProcessLauncherUtils.launchAndReadStandardStreams(processLauncher, null);
+ LaunchResults results = ProcessLauncherUtils.launchAndReadStandardStreams(
+ processLauncher, null);
assertEquals("Running under /tmp:\n\n"+results.stdout+results.stderr, 0, results.exitCode);
assertEquals("Hello world", results.stdout.trim());
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,6 +20,7 @@
import org.maemo.mica.common.core.machine.ILocalMachine;
import org.maemo.mica.common.core.sdk.*;
import org.maemo.mica.common.core.tests.TestUtils;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.maemosdk.core.*;
import java.util.List;
@@ -39,7 +40,7 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- SDKFactory factory = SDKFactory.getInstance();
+ SDKManager factory = SDKManagerInternal.getInstance();
List<ISDKProvider> providers = factory.getSDKProviders();
assertNotNull(providers);
@@ -83,7 +84,7 @@
assertTrue(root.toPortableString().equals("/"));
((Scratchbox2SDK)sdk).realize();
- assertTrue(sdk.getVersion(), sdk.getVersion().matches("1\\.99\\..*|2\\.0\\.*"));
+ assertTrue(sdk.getVersion(), sdk.getVersion().matches("1\\.99\\..*|2\\.0.*"));
}
}
@@ -118,8 +119,8 @@
if (!ISDKPlatform.NAME_UNKNOWN.equals(platform.getName())) {
IMaemoSDKPlatform maemoPlatform = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform.getName());
assertNotNull("Should be registered platform: " + platform.getName(), maemoPlatform);
- assertTrue("Should be compatible version: " + platform.getVersion(),
- platform.getVersion().startsWith(maemoPlatform.getVersion()));
+ assertTrue("Should be compatible version: " + platform.getVersionString(),
+ platform.getVersionString().startsWith(maemoPlatform.getVersionString()));
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestScratchboxProjectInfo.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestScratchboxProjectInfo.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/TestScratchboxProjectInfo.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -34,11 +34,12 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.sdk.ISDK;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.StdoutProgressReporter;
import org.maemo.mica.common.core.tests.TestUtils;
import org.maemo.mica.common.project.core.ProjectManager;
import org.maemo.mica.common.project.core.model.*;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.common.project.core.model.BuildConfigurationData;
@@ -59,7 +60,7 @@
@Before
public void setUp() throws Exception {
TestUtils.disableAutobuild();
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
PROJ1_GOOD = PROJ1_GOOD_BASE + counter++;
@@ -96,8 +97,7 @@
// try to find Fremantle SB1 in /opt/scratchbox
SB1PreferenceConstants.getPreferenceStore().setValue(
SB1PreferenceConstants.SB1_ROOTS, "/scratchbox:/opt/scratchbox");
- SDKFactory.getInstance().refresh(false);
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManagerInternal.getInstance().refresh(null);
List<IScratchbox1SDK> sdks = ScratchboxSDKFacade.getInstance().getScratchboxSDK(
IScratchbox1SDK.class);
@@ -110,7 +110,7 @@
} finally {
SB1PreferenceConstants.getPreferenceStore().setValue(
SB1PreferenceConstants.SB1_ROOTS, origRoot);
- SDKFactory.getInstance().refresh(false);
+ SDKManagerInternal.getInstance().refresh(false);
}
}
@@ -127,7 +127,7 @@
for (String target : sdk.getTargets()) {
if (!uniqueTargets.contains(target)) {
IBuildConfigurationData data = new BuildConfigurationData(
- target, target, sdk.getName());
+ target, target, sdk.getName(), sdk.getDisplayName());
/*config = */ projectHandle.createBuildConfiguration(data);
uniqueTargets.add(target);
}
@@ -135,6 +135,8 @@
}
projectHandle.save(null);
+ projectHandle = ProjectManager.getInstance().getProjectHandle(project1);
+
// now be sure we find them all
for (IBuildConfiguration bc : projectHandle.getBuildConfigurations()) {
ISDK sdk = bc.getSDK();
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseTest.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseTest.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseTest.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,7 +17,7 @@
import org.maemo.esbox.scratchbox.core.sdk.ScratchboxSDKFacade;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
import org.maemo.esbox.scratchbox.sb2.sdk.IScratchbox2SDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import java.util.List;
@@ -42,7 +42,7 @@
*/
@Before
public void setUp() throws Exception {
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManager.getInstance().waitForRefreshComplete(null);
this.sb1Sdks = ScratchboxSDKFacade.getInstance().getScratchboxSDK(IScratchbox1SDK.class);
if (sb1Sdks.size() > 0) {
this.sb1Sdk = sb1Sdks.get(0);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncher.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncher.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncher.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,37 +11,32 @@
package org.maemo.esbox.scratchbox.tests.commands;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.console.MessageConsole;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
-import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.sdk.ISDKTarget;
-
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.List;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.WrappedProcessLauncher;
+
/**
* This process launcher does not actually launch anything but allows
* access to the generated arguments and environment.
* @author eswartz
*
*/
-public class MockProcessLauncher implements IProcessLauncher {
+public class MockProcessLauncher extends WrappedProcessLauncher {
- private final IProcessLauncher wrapped;
private Process theProcess;
public MockProcessLauncher(IProcessLauncher launcher) {
- this.wrapped = launcher;
+ super(launcher);
}
/* (non-Javadoc)
* @see org.maemo.esbox.common.core.IProcessLauncher#createProcess()
*/
- public Process createProcess() throws MicaException {
+ public Process createProcess(IProgressMonitor monitor) throws MicaException {
theProcess = new Process() {
@Override
@@ -83,121 +78,4 @@
public Process getLastCreatedProcess() {
return theProcess;
}
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#getLaunchCommandArguments()
- */
- public List<String> getLaunchCommandArguments() {
- return wrapped.getLaunchCommandArguments();
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#getLaunchEnvironment()
- */
- public IEnvironmentModifierBlock getLaunchEnvironmentModifierBlock() {
- return wrapped.getLaunchEnvironmentModifierBlock();
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#getLaunchCurrentWorkingDirectory()
- */
- public IPath getLaunchCurrentWorkingDirectory() {
- return wrapped.getLaunchCurrentWorkingDirectory();
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#isUsePTY()
- */
- public boolean isUsePTY() {
- return wrapped.isUsePTY();
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#usePTY(boolean)
- */
- public void usePTY(boolean flag) {
- wrapped.usePTY(flag);
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#redirectToConsole(org.eclipse.ui.console.MessageConsole, org.maemo.esbox.common.core.sdk.ISDKTarget)
- */
- public MessageConsole redirectToConsole(MessageConsole console) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#redirectToConsole(org.eclipse.ui.console.MessageConsole, org.maemo.esbox.common.core.sdk.ISDKTarget, org.maemo.esbox.common.core.IStreamLineMonitor)
- */
- public MessageConsole redirectToConsole(MessageConsole console,
- IStreamLineMonitor monitor) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#redirectToConsole(boolean, org.maemo.esbox.common.core.sdk.ISDKTarget, java.lang.String)
- */
- public MessageConsole redirectToConsole(boolean brandNew,
- ISDKTarget sdkTarget, String consoleName) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#redirectToConsole(boolean, org.maemo.esbox.common.core.sdk.ISDKTarget, java.lang.String, org.maemo.esbox.common.core.IStreamLineMonitor)
- */
- public MessageConsole redirectToConsole(boolean brandNew,
- ISDKTarget sdkTarget, String consoleName, IStreamLineMonitor monitor) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#waitAndRead(java.io.OutputStream, java.io.OutputStream)
- */
- public int waitAndRead(OutputStream out, OutputStream err) {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#waitAndRead(java.io.OutputStream, java.io.OutputStream, boolean)
- */
- public int waitAndRead(OutputStream out, OutputStream err,
- boolean showCommand) {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#waitAndRead(java.io.OutputStream, java.io.OutputStream, org.eclipse.core.runtime.IProgressMonitor)
- */
- public int waitAndRead(OutputStream output, OutputStream err,
- IProgressMonitor monitor) {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.IProcessLauncher#waitAndRead(java.io.OutputStream, java.io.OutputStream, org.eclipse.core.runtime.IProgressMonitor, boolean)
- */
- public int waitAndRead(OutputStream output, OutputStream err,
- IProgressMonitor monitor, boolean showCommand) {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.process.IProcessLauncher#waitToComplete(org.eclipse.core.runtime.IProgressMonitor)
- */
- public int waitToComplete(IProgressMonitor monitor) {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.process.IProcessLauncher#queueStreamMonitor(org.maemo.mica.common.core.process.IStreamMonitor)
- */
- public void queueStreamMonitor(IStreamMonitor monitor) {
-
- }
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.process.IProcessLauncher#createProcessMonitor()
- */
- public IProcessMonitor createProcessMonitor() {
- return null;
- }
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncherFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncherFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/MockProcessLauncherFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,51 +11,36 @@
package org.maemo.esbox.scratchbox.tests.commands;
-import org.eclipse.core.runtime.IPath;
-import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
+import java.util.List;
+
import org.maemo.mica.common.core.process.IProcessLauncher;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.WrappedProcessLauncherFactory;
-import java.util.List;
-import java.util.Properties;
-
/**
* This factory creates process launchers that do not actually execute anything
* but allow for testing the generated command line through the process launcher.
* @author eswartz
*
*/
-public class MockProcessLauncherFactory implements IProcessLauncherFactory {
+public class MockProcessLauncherFactory extends WrappedProcessLauncherFactory {
- private IProcessLauncherFactory wrapped;
- private IProcessLauncher lastProcessLauncher;
+ private ProcessLauncherParameters lastParams;
public MockProcessLauncherFactory(IProcessLauncherFactory wrapped) {
- this.wrapped = wrapped;
+ super(wrapped);
}
/* (non-Javadoc)
* @see org.maemo.esbox.common.core.IProcessLauncherFactory#createProcessLauncher(org.eclipse.core.runtime.IPath, java.util.List, java.util.Properties, org.eclipse.cdt.utils.pty.PTY)
*/
- public IProcessLauncher createProcessLauncher(IPath workingDirectory,
- List<String> commandLine, IEnvironmentModifierBlock environment) {
- lastProcessLauncher = wrapped.createProcessLauncher(workingDirectory, commandLine, environment);
- return new MockProcessLauncher(lastProcessLauncher);
+ public IProcessLauncher createProcessLauncher(ProcessLauncherParameters params) {
+ lastParams = params;
+ return new MockProcessLauncher(wrapped.createProcessLauncher(params));
}
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.process.IProcessLauncherFactory#getDefaultEnvironmentModifierBlock()
- */
- public IEnvironmentModifierBlock defaultEnvironmentModifierBlock() {
- return wrapped.defaultEnvironmentModifierBlock();
- }
- /* (non-Javadoc)
- * @see org.maemo.esbox.common.core.process.IProcessLauncherFactory#getRawEnvironment()
- */
- public Properties getRawEnvironment() {
- return wrapped.getRawEnvironment();
- }
public List<String> getLastCommandLine() {
- return lastProcessLauncher.getLaunchCommandArguments();
+ return lastParams.getCommandLine();
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestListCommands.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestListCommands.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestListCommands.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,16 +11,21 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.tests.commands;
-import org.maemo.esbox.internal.scratchbox.sb1.command.*;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.maemo.esbox.internal.scratchbox.sb1.command.ListCompilersCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.ListCputranspCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.ListDevkitsCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.ListSessionsCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.ListTargetsCommand;
import org.maemo.esbox.internal.scratchbox.sb1.core.Scratchbox1SDK;
import org.maemo.esbox.scratchbox.core.sdk.ScratchboxSDKFacade;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncher;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import java.util.*;
-
/**
* Please, read file TESTS.txt for more instructions about test.
*/
@@ -255,10 +260,9 @@
Process process = null;
try {
- IProcessLauncher launcher = ProcessLauncherCreator.createProcessLauncher(target.getProcessLauncherFactory(), null,
- Collections.singletonList("/usr/bin/yes"), null);
- launcher.usePTY(true);
- process = launcher.createProcess();
+ IProcessLauncher launcher = target.getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create("/usr/bin/yes"));
+ process = launcher.createProcess(null);
sessions = listSessionsCommand.performCommand(new ArrayList<String>());
@@ -295,6 +299,9 @@
targetsExpected.add("CHINOOK_ARMEL");
targetsExpected.add("CHINOOK_X86");
targetsExpected.add("DIABLO_ARMEL");
+ targetsExpected.add("DIABLO_X86");
+ targetsExpected.add("FREMANTLE_ARMEL");
+ targetsExpected.add("FREMANTLE_X86");
ListTargetsCommand listTargetsCommand = new ListTargetsCommand(sb1Command);
List<String> targets = null;
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchbox2SDK.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchbox2SDK.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchbox2SDK.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -14,6 +14,8 @@
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.esbox.scratchbox.sb2.sdk.MaemoRootstrap;
import org.maemo.mica.common.core.sdk.ISDKPlatform;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
+import org.osgi.framework.Version;
import java.util.*;
@@ -24,6 +26,8 @@
public void setUp() throws Exception {
super.setUp();
possibleRootstraps = new HashSet<String>();
+ possibleRootstraps.add("fremantle5.0_beta1_i386");
+ possibleRootstraps.add("fremantle5.0_beta1_armel");
possibleRootstraps.add("diablo41_armel");
possibleRootstraps.add("diablo4.1_armel");
possibleRootstraps.add("diablo4.1_i386l");
@@ -76,21 +80,30 @@
public void testGetPlatform() throws Exception {
Scratchbox2SDK sdk = (Scratchbox2SDK) sb2Sdk;
ISDKPlatform platform = sdk.getPlatform("diablo41_armel");
- assertEquals("Diablo", platform.getName());
- assertEquals("4.1", platform.getVersion());
+ assertTrue(platform.toString(), IMaemoSDKPlatform.DIABLO.matches(platform));
+ assertEquals("4.1", platform.getVersionString());
platform = sdk.getPlatform("diablo41_x86");
- assertEquals("Diablo", platform.getName());
- assertEquals("4.1", platform.getVersion());
+ assertTrue(platform.toString(), IMaemoSDKPlatform.DIABLO.matches(platform));
+ assertEquals("4.1", platform.getVersionString());
platform = sdk.getPlatform("diablo41_i386");
- assertEquals("Diablo", platform.getName());
- assertEquals("4.1", platform.getVersion());
+ assertTrue(platform.toString(), IMaemoSDKPlatform.DIABLO.matches(platform));
+ assertEquals("4.1", platform.getVersionString());
platform = sdk.getPlatform("diablo4.1.1_armel");
- assertEquals("Diablo", platform.getName());
- assertEquals("4.1.1", platform.getVersion());
+ assertTrue(platform.toString(), IMaemoSDKPlatform.DIABLO.matches(platform));
+ assertEquals("4.1.1", platform.getVersionString());
+ platform = sdk.getPlatform("fremantle5.0_beta1_armel");
+ assertTrue(platform.toString(), IMaemoSDKPlatform.FREMANTLE.matches(platform));
+ assertEquals("5.0_beta1", platform.getVersionString());
+ assertEquals(new Version(5, 0, 0, "_beta1"), platform.getVersion());
+
+ platform = sdk.getPlatform("fremantle5.0_beta1_i386");
+ assertTrue(platform.toString(), IMaemoSDKPlatform.FREMANTLE.matches(platform));
+ assertEquals(new Version(5, 0, 0, "_beta1"), platform.getVersion());
+
}
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchboxFacade.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchboxFacade.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestScratchboxFacade.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,6 +11,11 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.tests.commands;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.junit.Test;
@@ -20,13 +25,9 @@
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncher;
-import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import java.util.*;
-
-import junit.framework.TestCase;
-
/**
* Please, read file TESTS.txt for more instructions about test.
*/
@@ -276,11 +277,9 @@
ISDKTarget target = ScratchboxSDKFacade.getInstance().getScratchboxSDK(Scratchbox1SDK.class).get(0).getCurrentSDKTarget();
Process process = null;
try {
- // need a PTY or else the shell fails to launch
- IProcessLauncher launcher = ProcessLauncherCreator.createProcessLauncher(target.getProcessLauncherFactory(), null,
- Collections.singletonList("/bin/sh"), null);
- launcher.usePTY(true);
- process = launcher.createProcess();
+ IProcessLauncher launcher = target.getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create("bin/sh"));
+ process = launcher.createProcess(null);
// wait for it to really start
Thread.sleep(5000);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchEngine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchEngine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchEngine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -27,14 +27,21 @@
import org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDK;
import org.maemo.esbox.internal.scratchbox.ui.UIActivator;
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
-import org.maemo.mica.common.core.GeneralUtils;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.filesystem.IFileSystemAccess;
import org.maemo.mica.common.core.machine.IMachine;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.machine.MachineUtils;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.IStreamMonitor;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.process.StringBuilderStreamTextMonitor;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.core.ui.IProgressReporter;
import org.maemo.mica.common.core.ui.ProgressReporterStreamTextMonitor;
+import org.maemo.mica.internal.api.common.core.GeneralUtils;
import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
/**
@@ -115,7 +122,7 @@
// copy patch to build target
IMachine machine = target.getFileSystemAccess().getMachine();
- IPath tempDir = machine.getUserHome().append(GeneralUtils.DEFAULT_MICA_HIDDEN_PATH);
+ IPath tempDir = MachineUtils.getTemporaryPath(machine);
IFileSystemAccess fileSystemAccess = target.getFileSystemAccess();
@@ -207,16 +214,14 @@
reporter.logInfo("Patching " + autom4tePath.toPortableString());
// ignore whitespace and do not reverse patch
- List<String> patchCmdLine = CommandLineArguments.wrapScriptCommandLineForShell(
+ List<String> patchCmdLine = CommandLineArguments.wrapScriptCommandLineForUnixShell(
CommandLineArguments.createFromVarArgs(
"patch", "-l", "-N",
autom4tePath.toPortableString(),
"<", patchPath.toPortableString()));
- IProcessLauncher launcher = ProcessLauncherCreator.createProcessLauncher(
- factory,
- null,
- patchCmdLine);
+ IProcessLauncher launcher = factory.createProcessLauncher(
+ ProcessLauncherParameters.create(patchCmdLine));
try {
StringBuilderStreamTextMonitor textMonitor = new StringBuilderStreamTextMonitor(true);
Modified: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchTargetsPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchTargetsPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/ApplyAutoconfPatchTargetsPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -24,7 +24,7 @@
import org.maemo.esbox.internal.api.scratchbox.core.commands.*;
import org.maemo.mica.common.core.sdk.*;
import org.maemo.mica.common.ui.sdk.BuildTargetUI;
-import org.maemo.mica.internal.api.common.core.GridLayoutWrappedTextUtils;
+import org.maemo.mica.internal.api.common.core.ui.GridLayoutWrappedTextUtils;
import java.util.ArrayList;
import java.util.List;
Deleted: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCPUMethod.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCPUMethod.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCPUMethod.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 INdT, (c) 2008 Nokia Corporation
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Raul Herbster (UFCG) - initial API and implementation
- * Carolina Nogueira de Souza (UFCG) - initial API and implementation
- * Ed Swartz (Nokia)
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.ui.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.maemo.esbox.internal.scratchbox.ui.UIActivator;
-import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.ErrorLogger;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.IValidatePage;
-
-import java.util.List;
-
-/**
- * This pages shows the CPU-transparency method that the user can choose for his/her
- * target. The CPU-transparency method provides a way so that the user can execute the
- * executable.
- *
- */
-public class TargetWizardCPUMethod extends WizardPage implements IValidatePage {
-
- private Table table;
-
-
-
- private boolean sbrshConfigure;
- private IScratchboxSDK sdk;
-
- private static final String SBRSH = "sbrsh";
-
- /**
- * Creates a NewTargetWizardCPUMethod
- */
- protected TargetWizardCPUMethod(IScratchboxSDK sdk) {
- super("CPU-Transparency Method");
- setTitle("CPU-Transparency Method");
- setDescription("Select CPU-transparency method");
- setPageComplete(false);
- this.sdk = sdk;
- }
-
- public Table getTable() {
- return table;
- }
-
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(1, false));
- Label label = new Label(composite,SWT.LEFT);
- label.setText("CPU-Transparency Methods"); //$NON-NLS-1$
-
- table = new Table(composite, SWT.MULTI| SWT.BORDER | SWT.V_SCROLL);
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- table.setLinesVisible(true);
- //table.setSize(50, 50);
- table.setHeaderVisible(false);
- table.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- for(TableItem item: table.getSelection())
- setSbrshConfigure(item.getText().endsWith(TargetWizardCPUMethod.SBRSH));
- validatePage();
- }
- });
-
- inicializeTable();
- table.redraw();
- setControl(composite);
- }
-
-
- private void setSbrshConfigure(boolean value) {
- sbrshConfigure = value;
- }
-
- public boolean getSbrshConfigure() {
- return sbrshConfigure;
- }
-
- public boolean canFinish() {
- return isPageComplete();
- }
-
- /**
- * Inicializes the contents of the table.
- */
- private void inicializeTable() {
- List<String> targetMethod = null;
- try {
-// targetMethod = ScratchboxFacade.getInstance().getCputransp(sdk);
- targetMethod = sdk.getCputransp();
- } catch (MicaException e) {
- ErrorLogger errorLogger = UIActivator.getErrorLogger();
- errorLogger.logAndShowError("Cannot get list of CPU-Transparency Method", e);
- return;
- }
-
- TableItem item = null;
- for (String cputransp : targetMethod) {
- item = new TableItem(table,SWT.NONE);
- item.setText(cputransp);
- }
- }
-
-
-
- /*
- * (non-Javadoc)
- * @see br.edu.ufcg.dee.omapsdk.properties.target.wizard.pages.ValidateWizardPage#perfomeAction()
- */
- public boolean validatePage() {
- setPageComplete(true);
- return true;
- }
-}
\ No newline at end of file
Deleted: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCompilerPage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCompilerPage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardCompilerPage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 INdT, (c) 2008 Nokia Corporation
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Raul Herbster (UFCG) - initial API and implementation
- * Carolina Nogueira de Souza (UFCG) - initial API and implementation
- * Ed Swartz (Nokia)
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.ui.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.maemo.esbox.internal.scratchbox.ui.UIActivator;
-import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
-import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.ErrorLogger;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.IValidatePage;
-
-import java.util.List;
-
-/**
- * This pages shows the compilers that the user can choose for his/her
- * target. The compilers are disposed as a list with checkbox, so the user
- * can select only one.
- *
- */
-public class TargetWizardCompilerPage extends WizardPage implements IValidatePage {
-
- private Table table;
- private IScratchboxSDK sdk;
-
- /**
- * Constructs a NewTargetWizardCompilerPage
- */
- protected TargetWizardCompilerPage(IScratchboxSDK sdk) {
- super("Compiler");
- this.sdk = sdk;
- setTitle("Compiler");
- setDescription("Select compiler");
- setPageComplete(false);
- }
-
- public Table getTableControl(){
- return table;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(1, false));
-
- Label label = new Label(composite,SWT.LEFT);
- label.setText("Compilers");
-
- table = new Table(composite,SWT.SINGLE | SWT.BORDER);
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- table.setLinesVisible(true);
- table.setHeaderVisible(false);
- table.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- validatePage();
- }
- });
-
- inicializeTable();
-
- setControl(composite);
- }
-
- /**
- * Inicializes the contents of the table.
- */
- private void inicializeTable() {
- List<String> compilers = null;
- try {
-// compilers = ScratchboxFacade.getInstance().getCompilers(sdk);
- compilers = sdk.getCompilers();
- } catch (MicaException e) {
- ErrorLogger errorLogger = UIActivator.getErrorLogger();
- errorLogger.logAndShowError("Cannot get list of compilers", e);
- return;
- }
-
- TableItem item = null;
- for (String compilerName : compilers) {
- item = new TableItem(table, SWT.NONE);
- item.setText(compilerName);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see br.edu.ufcg.dee.omapsdk.properties.target.wizard.pages.ValidateWizardPage#perfomeAction()
- */
- public boolean validatePage() {
- setPageComplete(true);
- return true;
- }
-
-}
Deleted: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardNamePage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardNamePage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardNamePage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 INdT, (c) 2008 Nokia Corporation
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Raul Herbster (UFCG) - initial API and implementation
- * Carolina Nogueira de Souza (UFCG) - initial API and implementation
- * Ed Swartz (Nokia)
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.ui.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.IValidatePage;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.TargetListener;
-
-/**
- * The user insert the name for the target. This name must be unique.
- */
-public class TargetWizardNamePage extends WizardPage implements IValidatePage, TargetListener {
-
- private Text text;
- private IScratchboxSDK sdk;
-
- /**
- * Constructs a NewTargetWizardNamePage.
- */
- protected TargetWizardNamePage(IScratchboxSDK sdk) {
- super("Target Name");
- this.sdk = sdk;
- setTitle("Target Name");
- setDescription("Enter name for the new target");
- this.targetAdded();
- setPageComplete(false);
- }
-
- public Text getTextControl(){
- return text;
- }
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(1, false));
-
- Label label = new Label(composite, SWT.LEFT);
- label.setText("Target Name:");
-
- text = new Text(composite, SWT.BORDER);
- text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
- text.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent event) {
- validatePage();
- }
-
- public void keyReleased(KeyEvent event) {
- validatePage();
- }
- });
-
- setControl(composite);
- }
-
- /*
- * (non-Javadoc)
- * @see br.edu.ufcg.dee.omapsdk.properties.target.wizard.pages.ValidateWizardPage#perfomeAction()
- */
- public boolean validatePage() {
- String value = text.getText();
- if(value.length() >= 1) {
- setPageComplete(true);
- } else {
- setPageComplete(false);
- }
- boolean isValid = false;
- isValid = verifyName();
- setPageComplete(isValid);
- return isValid;
- }
-
- /**
- * Verify if the name of the target exists previously.
- *
- * @return
- * true, if the name of the target have been defined already; false, otherwise.
- */
- private boolean verifyName() {
- String targetName = text.getText().trim();
- if(sdk.findSDKTarget(targetName) != null) {
- setErrorMessage("This target name is already defined.");
- return false;
- } else {
- setErrorMessage(null);
- return true;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see br.edu.ufcg.dee.omapsdk.properties.target.wizard.TargetWizardListener#targetAdded()
- */
- public void targetAdded() {
- updateTargetList();
- }
-
- /*
- * (non-Javadoc)
- * @see dee.nokia.esbox.plugin.ui.internal.wizard.targets.TargetListener#targetRemoved()
- */
- public void targetRemoved() {
- updateTargetList();
- }
-
- /*
- * (non-Javadoc)
- * @see dee.nokia.esbox.plugin.ui.internal.wizard.targets.TargetListener#targetChoosen(java.lang.String)
- */
- public void targetChoosen(String name) {
- // for this wizard page, this action doesnt matter.
- }
-
- /**
- * Update the list of target on Scratchbox. This process is done
- * because the wizard needs to know the target to control the creation of
- * new targets.
- */
- private void updateTargetList() {
- SDKFactory.getInstance().refresh(false);
- }
-}
\ No newline at end of file
Deleted: branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardPageFactory.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardPageFactory.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.scratchbox.ui/src/org/maemo/esbox/internal/api/scratchbox/ui/wizards/TargetWizardPageFactory.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 INdT, (c) 2008 Nokia Corporation
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Raul Herbster (UFCG) - initial API and implementation
- * Carolina Nogueira de Souza (UFCG) - initial API and implementation
- * Ed Swartz (Nokia)
- *******************************************************************************/
-
-package org.maemo.esbox.internal.api.scratchbox.ui.wizards;
-
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDK;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.BadInstallationPage;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.sbrsh.SbrshConfigurationNFSServer;
-import org.maemo.mica.internal.api.maemosdk.ui.wizards.sbrsh.SbrshConfigurationTargetDevice;
-
-/**
- * Factory that creates all pages of the new target wizard.
- *
- */
-public class TargetWizardPageFactory {
-
- private static TargetWizardPageFactory singleton = null;
-
- /**
- * Construtor
- */
- private TargetWizardPageFactory() {
-
- }
-
- /**
- * Returns only one instance of TargetWizardPageFactory object.
- * @return only one instance of TargetWizardPageFactory object.
- */
- public static TargetWizardPageFactory getInstance() {
- if(singleton == null)
- singleton = new TargetWizardPageFactory();
- return singleton;
- }
-
- /**
- * Creates a new name page.
- * @return a new name page.
- */
- public WizardPage createNamePage(IScratchboxSDK sdk) {
- return new TargetWizardNamePage(sdk);
- }
-
- /**
- * Creates a new compiler page.
- * @return a new compiler page.
- */
- public WizardPage createCompilerPage(IScratchboxSDK sdk) {
- return new TargetWizardCompilerPage(sdk);
- }
-
- /**
- * Creates a new CPU-method transparency page.
- * @return a new CPU-method transparency page.
- */
- public WizardPage createCPUMethod(IScratchboxSDK sdk) {
- return new TargetWizardCPUMethod(sdk);
- }
-
-// /**
-// * Creates a new devkit page.
-// * @return a new devkit page.
-// */
-// public WizardPage createDevkitsPage(IScratchbox1SDK sdk) {
-// return new TargetWizardDevkitsPage(sdk);
-// }
-
- /**
- * Create a new page to configure sbrsh device target.
- * @return a new page to configure sbrsh device target.
- */
- public WizardPage createSbrshConfigDeviceTargetPage() {
- return new SbrshConfigurationTargetDevice();
- }
-
- /**
- * Create a new page to configure sbrsh nfs server.
- * @return a new page to configure sbrsh nfs server.
- */
- public WizardPage createSbrshConfigNFSSServer() {
- return new SbrshConfigurationNFSServer();
- }
-
- public IWizardPage createBadInstallationPage() {
- return new BadInstallationPage();
- }
-
-// public WizardPage createMaemoRootstrapPage(IScratchboxSDK sdk) {
-// return new TargetWizardRootstrapSb2Page(sdk);
-// }
-}
Modified: branches/work_new_pydev/org.maemo.esbox.tests/asthelper.completions
===================================================================
(Binary files differ)
Modified: branches/work_new_pydev/org.maemo.esbox.tests/build.properties
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/build.properties 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/build.properties 2009-07-08 11:19:18 UTC (rev 1854)
@@ -1,4 +1,6 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ .,\
+ test.xml,\
+ data/
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -22,9 +22,7 @@
import junit.framework.TestSuite;
/**
- * We place this suite here since the maemo SDK tests usually depend on
- * most of these other features anyway. (The alternative is to make a new
- * org.maemo.esbox.product.tests plugin.)
+ * Top-level test for all the ESbox unit tests.
* @author eswartz
*
*/
@@ -60,8 +58,8 @@
};
ErrorLogger.addListener(listener);
- suite.addTest(org.maemo.esbox.internal.tests.ESboxMicaTestSuite.suite());
suite.addTest(org.maemo.mica.common.core.tests.MicaCoreTestSuite.suite());
+ suite.addTest(org.maemo.esbox.internal.tests.ESboxMicaTestSuite.suite());
suite.addTest(org.maemo.esbox.vm.tests.ESboxVMTestSuite.suite());
suite.addTest(org.maemo.esbox.scratchbox.tests.ESboxScratchboxTestSuite.suite());
suite.addTest(org.maemo.mica.linux.tests.MicaLinuxTestSuite.suite());
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/common/SboxTestUtils.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/common/SboxTestUtils.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/common/SboxTestUtils.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,7 +13,7 @@
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.TestUtils;
/**
@@ -27,8 +27,8 @@
public static ISDKTarget theSB1SDKTarget;
public static void reset() {
- SDKFactory.getInstance().waitForRefreshComplete(null);
- sdkTargets = SDKFactory.getInstance().getAllSDKTargets();
+ SDKManager.getInstance().waitForRefreshComplete(null);
+ sdkTargets = SDKManager.getInstance().getAllSDKTargets();
for (ISDKTarget target : sdkTargets) {
if (!TestUtils.isSupportedBuildableSDKTarget(target))
continue;
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectConverter.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectConverter.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectConverter.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -134,21 +134,24 @@
int kindMask = languageData.getSupportedEntryKinds();
assertTrue((kindMask & ICLanguageSettingEntry.INCLUDE_PATH) != 0);
ICLanguageSettingEntry[] entries = languageData.getEntries(ICLanguageSettingEntry.INCLUDE_PATH);
- assertEquals("no indexer data?", 11, entries.length);
- assertEquals("no indexer data?", ICLanguageSettingEntry.INCLUDE_PATH, entries[0].getKind());
+ assertEquals("no indexer data?", 12, entries.length);
+ assertEquals("no indexer data?", ICLanguageSettingEntry.INCLUDE_PATH, entries[1].getKind());
+ assertTrue("no indexer data for /project",
+ entries[0].getValue().startsWith("/" + handle.getProject().getName()));
+
// note: the old indexer data is still in the project and is not currently updated
// note 2: a bug somewhere causes the winders reference s:\...\ to be considered relative
// and stuck to the end of the project location; since we don't expect to convert
// projects between OSes normally, ignore this for now
assertTrue("no indexer data for /usr/include/gtk-2.0",
- entries[0].getValue().endsWith("/users/devel/targets/CHINOOK_ARMEL/usr/include/gtk-2.0"));
- assertEquals("no indexer data?", ICLanguageSettingEntry.INCLUDE_PATH, entries[1].getKind());
+ entries[1].getValue().endsWith("/users/devel/targets/CHINOOK_ARMEL/usr/include/gtk-2.0"));
+ assertEquals("no indexer data?", ICLanguageSettingEntry.INCLUDE_PATH, entries[2].getKind());
assertTrue("no indexer data for /usr/lib/gtk-2.0/include",
- entries[1].getValue().endsWith("/users/devel/targets/CHINOOK_ARMEL/usr/lib/gtk-2.0/include"));
+ entries[2].getValue().endsWith("/users/devel/targets/CHINOOK_ARMEL/usr/lib/gtk-2.0/include"));
// #10 is a compiler path, recalculated on import
assertEquals(ICLanguageSettingEntry.INCLUDE_PATH, entries[10].getKind());
- assertTrue("no indexer data for compiler?", entries[10].getValue().contains("compilers"));
+ assertTrue("no indexer data for compiler?", entries[11].getValue().contains("compilers"));
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectCreator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectCreator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/cpp/TestCppBuildConfigProjectCreator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -114,7 +114,7 @@
IProjectType projectType = ProjectManager.getInstance().getProjectType(MicaCppProjectConstants.C_PROJECT_TYPE_ID);
configHandler.initializeSingleBuildConfiguration(projectType, theSB2SDKTarget);
- IPath projectPath = TestUtils.getKnownSBVisibleWorkspacePath(theSB1SDKTarget).append("__unittest2");
+ IPath projectPath = TestUtils.getKnownSBVisibleWorkspacePath(theSB2SDKTarget).append("__unittest2");
IProject project = getNonExistingProject("testsb2", projectPath);
_testProjectCreation(project, projectPath);
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/linux/TestFremantleAptBuildPackageMapping.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/linux/TestFremantleAptBuildPackageMapping.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/linux/TestFremantleAptBuildPackageMapping.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -17,13 +17,13 @@
import org.junit.Test;
import org.maemo.esbox.internal.scratchbox.sb1.core.SB1PreferenceConstants;
import org.maemo.mica.common.core.sdk.ISDKTarget;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.common.core.tests.TestUtils;
+import org.maemo.mica.internal.api.common.core.sdk.SDKManagerInternal;
import org.maemo.mica.internal.api.linux.packages.core.aptpkgconfig.*;
+import org.maemo.mica.maemosdk.core.IMaemoSDKPlatform;
/**
- * Test the IPackageManager interface to package mapping (black-box).
- * This requires a CHINOOK or DIABLO (scratchbox) SDK to be available.
* @author eswartz
*
*/
@@ -41,15 +41,14 @@
// try to find Fremantle SB1 in /opt/scratchbox
SB1PreferenceConstants.getPreferenceStore().setValue(
SB1PreferenceConstants.SB1_ROOTS, "/scratchbox:/opt/scratchbox");
- SDKFactory.getInstance().refresh(false);
- SDKFactory.getInstance().waitForRefreshComplete(null);
+ SDKManagerInternal.getInstance().refresh(null);
IAptPackageManager fremantleMgr = null;
- for (ISDKTarget sdkTarget : SDKFactory.getInstance().getAllSDKTargets()) {
+ for (ISDKTarget sdkTarget : SDKManager.getInstance().getAllSDKTargets()) {
if (!TestUtils.isSupportedBuildableSDKTarget(sdkTarget))
continue;
- if (sdkTarget.getPlatform().getName().equalsIgnoreCase("fremantle")) {
+ if (IMaemoSDKPlatform.FREMANTLE.matches(sdkTarget.getPlatform())) {
IAptPackageManager packageManager = AptPackageManagerRegistry.getInstance().getPackageManagerFor(sdkTarget);
if (packageManager != null) {
fremantleMgr = packageManager;
@@ -64,7 +63,7 @@
} finally {
SB1PreferenceConstants.getPreferenceStore().setValue(
SB1PreferenceConstants.SB1_ROOTS, origRoot);
- SDKFactory.getInstance().refresh(false);
+ SDKManagerInternal.getInstance().refresh(false);
}
}
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -10,27 +10,38 @@
*******************************************************************************/
package org.maemo.esbox.tests.protocol;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.List;
+
import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.maemo.esbox.tests.common.SboxTestUtils;
import org.maemo.mica.common.core.HostUtils;
-import org.maemo.mica.common.core.env.EnvironmentManager;
+import org.maemo.mica.common.core.env.EnvironmentModifierBlock;
import org.maemo.mica.common.core.env.IEnvironmentModifierBlock;
import org.maemo.mica.common.core.filesystem.IFileSystemAccess;
-import org.maemo.mica.common.core.machine.*;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.mica.common.core.machine.IMachine;
+import org.maemo.mica.common.core.machine.MachineRegistry;
+import org.maemo.mica.common.core.machine.MachineUtils;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.core.tests.TestUtils;
import org.maemo.mica.common.core.tests.core.BaseTest;
import org.maemo.mica.internal.api.protocol.launch.sbrsh.ISBRSHLaunchAdapter;
-import org.maemo.mica.internal.api.protocol.sbrsh.*;
+import org.maemo.mica.internal.api.protocol.sbrsh.ISBRSHMachine;
+import org.maemo.mica.internal.api.protocol.sbrsh.SBRSHCommandConfiguration;
+import org.maemo.mica.internal.api.protocol.sbrsh.SBRSHConfigurationFile;
+import org.maemo.mica.internal.api.protocol.sbrsh.SBRSHConfigurationFileFactory;
+import org.maemo.mica.internal.api.protocol.sbrsh.SBRSHMachineFactory;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
/**
* @author eswartz
*
@@ -91,10 +102,9 @@
/** Ensure that a simple launch works */
public void testSimple() throws Exception {
if (!validateMachine(sbrshMachine)) return;
- List<String> cmdLine = CommandLineArguments.createFromCommandLine("ls -m");
IProcessLauncherFactory factory = sbrshMachine.getProcessLauncherFactory();
- IProcessLauncher launcher = factory.createProcessLauncher(null, cmdLine, null);
- Process process = launcher.createProcess();
+ IProcessLauncher launcher = factory.createProcessLauncher(ProcessLauncherParameters.create("ls -m"));
+ Process process = launcher.createProcess(null);
// this variant waits for the process to finish before consuming output
//
@@ -118,15 +128,16 @@
/** Ensure environment variables are passed properly */
public void testEnvVars() throws Exception {
if (!validateMachine(sbrshMachine)) return;
- List<String> cmdLine = CommandLineArguments.wrapScriptCommandLineForShell(
+ List<String> cmdLine = CommandLineArguments.wrapScriptCommandLineForUnixShell(
CommandLineArguments.createFromCommandLine("echo $CC,$LD/"));
- IEnvironmentModifierBlock envBlock = EnvironmentManager.getInstance().createEnvironmentModifierBlock();
+ IEnvironmentModifierBlock envBlock = new EnvironmentModifierBlock();
envBlock.define("CC", "gcc");
envBlock.define("LD", "1 2 3");
IProcessLauncherFactory factory = sbrshMachine.getProcessLauncherFactory();
- IProcessLauncher launcher = factory.createProcessLauncher(null, cmdLine, envBlock);
- Process process = launcher.createProcess();
+ IProcessLauncher launcher = factory.createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine, envBlock));
+ Process process = launcher.createProcess(null);
int exit = process.waitFor();
ByteArrayOutputStream err = new ByteArrayOutputStream();
Modified: branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/python/TestPythonProjectProperties.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/python/TestPythonProjectProperties.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.tests/src/org/maemo/esbox/tests/python/TestPythonProjectProperties.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -55,6 +55,8 @@
}
public void testNewPythonProjectProperties() throws Exception {
+ if (theSB1SDKTarget == null)
+ return;
IPath projectPath = TestUtils.getKnownSBVisibleWorkspacePath(theSB1SDKTarget).append("testimportpy");
IProject project = TestUtils.copyAndImportProject(
@@ -91,6 +93,8 @@
*/
@Test
public void testReadOldPythonProjectProperties() throws Exception {
+ if (theSB1SDKTarget == null)
+ return;
IPath projectPath = TestUtils.getKnownSBVisibleWorkspacePath(theSB1SDKTarget).append("testimportpy");
IProject project = TestUtils.copyAndImportProject(
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseLaunchableVirtualMachineController.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseLaunchableVirtualMachineController.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseLaunchableVirtualMachineController.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -33,9 +33,9 @@
import org.maemo.mica.common.core.machine.MachineManager;
import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.process.*;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import org.maemo.mica.common.core.sdk.ISDK;
-import org.maemo.mica.common.core.sdk.SDKFactory;
+import org.maemo.mica.common.core.sdk.SDKManager;
import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
import org.maemo.mica.internal.api.protocol.ssh.SSHErrorConstants;
@@ -132,14 +132,15 @@
if (monitor == null)
return false;
- if (monitor.isAlive())
+ return !monitor.isCompleted();
+ /*
return true;
try {
launcher.getLastCreatedProcess().exitValue();
return false;
} catch (IllegalThreadStateException e) {
return true;
- }
+ }*/
}
/**
@@ -152,7 +153,7 @@
String msg;
if (launcher != null) {
- Results results = new Results(launcher.getLastCreatedProcess().exitValue(),
+ LaunchResults results = new LaunchResults(launcher.getLastCreatedProcess().exitValue(),
streamGrabber.stdout.toString(),
streamGrabber.stderr.toString());
msg = results.reportResults("Virtual machine died unexpectedly");
@@ -215,9 +216,8 @@
System.out.println(commandString);
IProcessLauncherFactory processLauncherFactory = new HostProcessLauncherFactory();
- final IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(
- processLauncherFactory, parameters);
- processLauncher.createProcess();
+ final IProcessLauncher processLauncher = processLauncherFactory.createProcessLauncher(parameters);
+ processLauncher.createProcess(null);
LaunchedMachineInfo status = new LaunchedMachineInfo(machineConfiguration, processLauncher);
@@ -330,7 +330,7 @@
// shut down SDKs
monitor.subTask("Stopping SDKs...");
- for (ISDK sdk : SDKFactory.getInstance().getSDKs()) {
+ for (ISDK sdk : SDKManager.getInstance().getAllSDKs()) {
if (sdk.getMachine().equals(getMachine())) {
try {
sdk.forceShutdown(new SubProgressMonitor(monitor, 1));
@@ -345,13 +345,10 @@
// make it halt
monitor.subTask("Sending halt command...");
- List<String> cmdLine = CommandLineArguments.createFromVarArgs(
- "/sbin/halt", "-p", "now");
-
IProcessLauncherFactory factory = machine.getProcessLauncherFactory();
factory = new SudoWrappedProcessLauncherFactory(machine, factory, "root");
- IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(
- factory, null, cmdLine);
+ IProcessLauncher processLauncher = factory.createProcessLauncher(
+ ProcessLauncherParameters.create("/sbin/halt", "-p", "now"));
// note, this exits immediately, so we can't finish immediately after exit
try {
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualBuildMachine.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualBuildMachine.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualBuildMachine.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -12,7 +12,10 @@
package org.maemo.esbox.internal.api.vm.core;
-import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.maemo.mica.common.core.filesystem.IFileSystemAccess;
import org.maemo.mica.common.core.filesystem.ISharedFilesystemProvider;
import org.maemo.mica.common.core.machine.IMachineController;
@@ -38,6 +41,35 @@
*/
@Override
public IFileSystemAccess getFileSystemAccess() {
+ // EJS 090624: do this in a job to avoid using a null progress monitor;
+ // if network settings are not perfect, then smbmount will hang for a
+ // very long time and this will be uncancellable.
+ //
+ // Contrary to the comment below, we re-validate shares before a
+ // build, and the flags below should prevent double dialogs.
+ //
+ Job job = new Job("Checking shared folders...") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ boolean shouldValidate;
+ synchronized (BaseVirtualBuildMachine.this) {
+ shouldValidate = !validatedShares && !isValidatingShares;
+ }
+ if (shouldValidate && !monitor.isCanceled()) {
+ // now, verify shared folders
+ ensureSharesMounted(monitor);
+
+ // maybe the user cancelled or there were errors... but don't keep asking
+ validatedShares = true;
+ }
+ return Status.OK_STATUS;
+ }
+
+ };
+ job.schedule();
+
+ /*
// for this kind of machine, check more proactively,
// otherwise build-related stuff is likely to fail
@@ -52,6 +84,7 @@
// maybe the user cancelled or there were errors... but don't keep asking
validatedShares = true;
}
+ */
return super.getFileSystemAccess();
}
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualMachineController.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualMachineController.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/core/BaseVirtualMachineController.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -30,13 +30,13 @@
import org.maemo.esbox.internal.api.vm.ui.SynchronizedProgressPartProgressMonitor;
import org.maemo.esbox.internal.vm.Activator;
import org.maemo.esbox.vm.core.IVirtualMachineConfiguration;
-import org.maemo.mica.common.core.GeneralUtils;
import org.maemo.mica.common.core.Policy;
+import org.maemo.mica.common.core.WorkspaceUtils;
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineException;
import org.maemo.mica.internal.api.common.core.ILookHereProvider;
-import org.maemo.mica.internal.api.common.core.MachineProblemDialog;
import org.maemo.mica.internal.api.common.core.filesystem.SambaSharedFolderHandler;
+import org.maemo.mica.internal.api.common.core.ui.MachineProblemDialog;
import org.maemo.mica.internal.api.protocol.ssh.SSHMachineControllerBase;
import org.maemo.mica.protocol.ssh.SSHConfiguration;
@@ -100,7 +100,7 @@
launchMonitor = new SynchronizedProgressPartProgressMonitor(null, monitor);
- if (!GeneralUtils.isJUnitRunning()) {
+ if (!WorkspaceUtils.isJUnitRunning()) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
monitorDialog[0] = new SlowVirtualMachineLaunchMonitorDialog(
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -27,10 +27,10 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;
-import org.maemo.mica.common.core.GeneralUtils;
+import org.maemo.mica.common.core.ProductUtils;
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.IMachineController;
-import org.maemo.mica.internal.api.common.core.LookHereMessageWidget;
+import org.maemo.mica.internal.api.common.core.ui.LookHereMessageWidget;
import org.maemo.mica.internal.api.protocol.ssh.SSHMachineControllerBase;
import org.maemo.mica.protocol.ssh.SSHConfiguration;
@@ -158,7 +158,7 @@
SSHConfiguration config = ((SSHMachineControllerBase) machineController).getConfiguration();
builder.append(MessageFormat.format(
"{0} expects to connect to the machine at address {1}:{2}, and for the machine to talk back to the host at address {3} (which you can verify with a ping).\n \n",
- GeneralUtils.getProductName(),
+ ProductUtils.getProductName(),
config.getTargetAddress(), config.getTargetPort() + "",
config.getHostAddress()));
}
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/HostInterfaceAddressProvider.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/HostInterfaceAddressProvider.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/HostInterfaceAddressProvider.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -16,7 +16,7 @@
import org.maemo.esbox.internal.vm.Activator;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.machine.NetworkUtils;
+import org.maemo.mica.common.core.NetworkUtils;
/**
* Provide addresses from the host network interfaces (as strings).
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/core/VirtualMachinePreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/core/VirtualMachinePreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/core/VirtualMachinePreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,16 +13,15 @@
import java.util.Properties;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.maemo.mica.common.core.PasswordStorage;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
/**
* @author eswartz
*
*/
-public class VirtualMachinePreferenceMigrator implements IPreferenceMigrator {
+public class VirtualMachinePreferenceMigrator extends PreferenceMigratorAdapter {
/* (non-Javadoc)
* @see org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
@@ -41,14 +40,4 @@
VirtualMachinePreferenceConstants.VM_USER_PASSWORD, encoded);
}
-
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.IPreferenceMigrator#convertExistingPreferences(org.eclipse.jface.preference.IPreferenceStore, int, java.util.Properties, java.util.Properties)
- */
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
-
- }
-
}
Modified: branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -20,7 +20,7 @@
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.dialogs.PreferencesUtil;
import org.maemo.esbox.internal.vm.Activator;
-import org.maemo.mica.common.core.GeneralUtils;
+import org.maemo.mica.common.core.ProductUtils;
/**
* This dialog tells the user that a build machine should be selected.
@@ -40,7 +40,7 @@
public SelectVirtualMachineDialog(Shell shell) {
super(shell, "Select Build Machine", null,
// note: UI is added below to provide a hyperlink
- GeneralUtils.getProductName() + " needs to know what machine to use to build and launch your code. \n\n"+
+ ProductUtils.getProductName() + " needs to know what machine to use to build and launch your code. \n\n"+
"Your system cannot directly launch scratchbox or Maemo tools, so a virtual machine running 32-bit Linux/i386 must be used.\n\n"+
"Please configure the settings by clicking the link below.",
MessageDialog.INFORMATION,
Modified: branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -76,7 +76,7 @@
launchPattern = substitutor.substitute(launchPattern);
List<String> cmdLine = CommandLineArguments.createFromHostCommandLine(launchPattern);
- return new ProcessLauncherParameters(null, cmdLine, null);
+ return ProcessLauncherParameters.create(cmdLine);
}
/* (non-Javadoc)
Modified: branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -13,15 +13,14 @@
import java.util.Properties;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
/**
* @author eswartz
*
*/
-public class QemuPreferenceMigrator implements IPreferenceMigrator {
+public class QemuPreferenceMigrator extends PreferenceMigratorAdapter {
/* (non-Javadoc)
* @see org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
@@ -40,13 +39,4 @@
CorePreferenceManager.selectDefaultForOS(newPropertyDefaults,
QemuPreferenceConstants.QEMU_DISK_IMAGE_PATHS);
}
-
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.IPreferenceMigrator#convertExistingPreferences(org.eclipse.jface.preference.IPreferenceStore, int, java.util.Properties, java.util.Properties)
- */
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
- }
-
}
Modified: branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxMachineController.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxMachineController.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxMachineController.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -24,7 +24,7 @@
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.machine.MachineException;
import org.maemo.mica.common.core.process.ProcessLauncherParameters;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
import com.nokia.cpp.internal.api.utils.core.TextUtils;
@@ -67,7 +67,7 @@
* @param timeout in seconds
* @return Results or <code>null</code>
*/
- protected Results launchAndRunVBoxManage(int timeout, String command, String... arguments) {
+ protected LaunchResults launchAndRunVBoxManage(int timeout, String command, String... arguments) {
return VirtualBoxUtils.launchAndRunVBoxManage((IVirtualBoxConfiguration)machineConfiguration,
timeout, command, arguments);
}
@@ -80,7 +80,7 @@
@Override
protected ProcessLauncherParameters constructLaunchParameters() {
List<String> cmdLine = createVBoxManageCmdLine("startvm", machineName);
- return new ProcessLauncherParameters(null, cmdLine, null);
+ return ProcessLauncherParameters.create(cmdLine);
}
@@ -89,7 +89,7 @@
*/
@Override
public boolean isMachineRunning() {
- Results results = launchAndRunVBoxManage(10, "list", "runningvms");
+ LaunchResults results = launchAndRunVBoxManage(10, "list", "runningvms");
if (results == null)
return false;
@@ -134,7 +134,8 @@
launchInfo = launchMachine();
// wait for this to finish
- launchInfo.monitor.runBlocking();
+ launchInfo.monitor.runNonBlocking();
+ launchInfo.monitor.waitForCompletion(null);
// we need a little delay between that exit
// and the actual launch
@@ -195,7 +196,7 @@
if (monitor.isCanceled())
return Status.CANCEL_STATUS;
- Results results = launchAndRunVBoxManage(30, "controlvm", machineName, "poweroff");
+ LaunchResults results = launchAndRunVBoxManage(30, "controlvm", machineName, "poweroff");
if (results.exitCode != 0) {
return Activator.createErrorStatus(
Modified: branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -11,17 +11,16 @@
package org.maemo.esbox.internal.vm.virtualbox;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.maemo.mica.common.core.preferences.CorePreferenceManager;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
-
import java.util.Properties;
+import org.maemo.mica.common.core.preferences.CorePreferenceManager;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
+
/**
* @author eswartz
*
*/
-public class VirtualBoxPreferenceMigrator implements IPreferenceMigrator {
+public class VirtualBoxPreferenceMigrator extends PreferenceMigratorAdapter {
/* (non-Javadoc)
* @see org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
@@ -31,14 +30,4 @@
CorePreferenceManager.selectDefaultForOS(newPropertyDefaults,
VirtualBoxPreferenceConstants.VIRTUALBOX_EXE_NAME);
}
-
- /* (non-Javadoc)
- * @see org.maemo.mica.common.core.IPreferenceMigrator#convertExistingPreferences(org.eclipse.jface.preference.IPreferenceStore, int, java.util.Properties, java.util.Properties)
- */
- public void convertExistingPreferences(IPreferenceStore preferences,
- int oldMajor, Properties existingSettings,
- Properties newPropertyDefaults) {
-
- }
-
}
Modified: branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferencePage.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferencePage.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxPreferencePage.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -33,7 +33,7 @@
import org.maemo.esbox.vm.core.IVirtualMachineConfiguration;
import org.maemo.esbox.vm.virtualbox.IVirtualBoxConfiguration;
import org.maemo.mica.common.core.MicaException;
-import org.maemo.mica.common.core.machine.NetworkUtils;
+import org.maemo.mica.common.core.NetworkUtils;
import org.maemo.mica.common.core.ui.IProgressReporter;
/**
Modified: branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxUtils.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxUtils.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.virtualbox/src/org/maemo/esbox/internal/vm/virtualbox/VirtualBoxUtils.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -28,9 +28,11 @@
import org.maemo.mica.common.core.TimeoutProgressMonitor;
import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.ProcessLauncherParameters;
import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.process.ShellTemplateSubstitutor;
-import org.maemo.mica.common.core.process.ProcessLauncherUtils.Results;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils.LaunchResults;
/**
* Utilities for controlling VirtualBox through the VBoxManage program.
@@ -79,15 +81,15 @@
* @param timeout in seconds
* @return Results if process ran, else <code>null</code> (error logged)
*/
- public static Results launchAndRunVBoxManage(IVirtualBoxConfiguration configuration, int timeout,
+ public static LaunchResults launchAndRunVBoxManage(IVirtualBoxConfiguration configuration, int timeout,
String command, String... arguments) {
List<String> cmdLine = createVBoxManageCmdLine(configuration, command, arguments);
- Results results = null;
+ LaunchResults results = null;
try {
+ IProcessLauncher processLauncher = MachineRegistry.getInstance().getLocalMachine().getProcessLauncherFactory().createProcessLauncher(
+ ProcessLauncherParameters.create(cmdLine));
results = ProcessLauncherUtils.launchAndReadStandardStreams(
- MachineRegistry.getInstance().getLocalMachine().getProcessLauncherFactory(),
- cmdLine,
- new TimeoutProgressMonitor(timeout * 1000));
+ processLauncher, new TimeoutProgressMonitor(timeout * 1000));
} catch (MicaException e) {
Activator.getErrorLogger().logError("Failed to run VirtualBox manager", e);
}
@@ -100,7 +102,7 @@
*/
public static Map<String, String> getNameToUUIDMap(IVirtualBoxConfiguration config) {
Map<String, String> vmNameToUUIDMap = new LinkedHashMap<String, String>();
- Results results = launchAndRunVBoxManage(config, 10, "list", "vms");
+ LaunchResults results = launchAndRunVBoxManage(config, 10, "list", "vms");
if (results != null) {
String currentName = null;
for (String line : results.getStdoutLines()) {
@@ -146,7 +148,7 @@
* @return map of key to values
*/
public static Map<String, String> getVirtualMachineInfo(IVirtualBoxConfiguration configuration) {
- Results results;
+ LaunchResults results;
results = VirtualBoxUtils.launchAndRunVBoxManage(configuration,
10, "-version");
if (results == null) {
@@ -195,7 +197,7 @@
* @return map of key to values
*/
public static Map<String, String> getVirtualMachineExtraData(IVirtualBoxConfiguration configuration) {
- Results results = VirtualBoxUtils.launchAndRunVBoxManage(configuration, 10,
+ LaunchResults results = VirtualBoxUtils.launchAndRunVBoxManage(configuration, 10,
"getextradata", configuration.getMachineName(), "enumerate");
if (results == null)
return null;
Modified: branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareMachineController.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareMachineController.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareMachineController.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -95,7 +95,7 @@
launchPattern = substitutor.substitute(launchPattern);
List<String> cmdLine = CommandLineArguments.createFromHostCommandLine(launchPattern);
- return new ProcessLauncherParameters(null, cmdLine, null);
+ return ProcessLauncherParameters.create(cmdLine);
}
/* (non-Javadoc)
Modified: branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferenceMigrator.java
===================================================================
--- branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferenceMigrator.java 2009-07-07 13:36:33 UTC (rev 1853)
+++ branches/work_new_pydev/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferenceMigrator.java 2009-07-08 11:19:18 UTC (rev 1854)
@@ -14,7 +14,7 @@
import org.eclipse.cdt.utils.WindowsRegistry;
import org.eclipse.jface.preference.IPreferenceStore;
import org.maemo.mica.common.core.preferences.CorePreferenceManager;
-import org.maemo.mica.common.core.preferences.IPreferenceMigrator;
+import org.maemo.mica.common.core.preferences.PreferenceMigratorAdapter;
import java.io.File;
import java.util.Properties;
@@ -23,7 +23,7 @@
* @author eswartz
*
*/
-public class VMwarePreferenceMigrator implements IPreferenceMigrator {
+public class VMwarePreferenceMigrator extends PreferenceMigratorAdapter {
/* (non-Javadoc)
* @see org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
@@ -44,6 +44,9 @@
public void convertExistingPreferences(IPreferenceStore preferences,
int oldMajor, Properties existingSettings,
Properties newPropertyDefaults) {
+
+ // this isn't strictly a conversion from an older version,
+ // but a change that reflects changes in any current installation
if (!existingSettings.containsKey(VMwarePreferenceConstants.VMWARE_EXE_NAME)) {
WindowsRegistry registry = WindowsRegistry.getRegistry();
if (registry != null) {
More information about the Esbox-commits
mailing list