[Esbox-commits] r927 - in branches/sdkPlusSupport: org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher org.maemo.esbox.scratchbox.sb2/conf 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/launcher
baranov at garage.maemo.org
baranov at garage.maemo.org
Fri Nov 7 13:38:59 EET 2008
Author: baranov
Date: 2008-11-07 13:38:59 +0200 (Fri, 07 Nov 2008)
New Revision: 927
Modified:
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapter.java
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapterFactory.java
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/conf/sb2_prefs.xml
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapter.java
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java
branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java
Log:
reimplement sb2 process launcher support, prepare to be merged to trunk
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapter.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapter.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapter.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -38,17 +38,27 @@
import org.maemo.mica.common.core.process.ProcessLauncherCreator;
import org.maemo.mica.common.core.sdk.ISDKTarget;
+/**
+ * @author baranov
+ *
+ */
public class Sb1MaemoLauncherAdapter implements IMaemoLauncherAdapter{
private static final String MAEMO_LAUNCHER_APP = "maemo-launcher";
private final IScratchbox1SDKTarget target;
private final MaemoCommand command;
+ /**
+ * @param target
+ */
public Sb1MaemoLauncherAdapter(IScratchbox1SDKTarget target){
this.target = target;
this.command = new MaemoCommand(target);
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#killMaemo()
+ */
public void killMaemo() throws MicaException {
List<IProcess> pids = getMaemoLaunchers(target.getSDK().getMachine());
if (pids.size() == 0)
@@ -77,11 +87,17 @@
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#restartMaemo()
+ */
public void restartMaemo() throws MicaException {
command.restartMaemoCommand();
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#startMaemo()
+ */
public void startMaemo() throws MicaException {
if (isMaemoRunning())
throw new MicaException("Maemo is already running");
@@ -93,19 +109,27 @@
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#stopMaemo()
+ */
public void stopMaemo() throws MicaException {
command.stopMaemoCommand();
}
-
-
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#isMaemoRunning()
+ */
public boolean isMaemoRunning() throws MicaException {
List<IProcess> runningProcesses = getMaemoLaunchers(target.getSDK()
.getMachine());
return runningProcesses.size() > 0;
}
+ /**
+ * @param machine
+ * @return
+ */
private List<IProcess> getMaemoLaunchers(IMachine machine) {
// includes scratchbox call that launched maemo-launcher
List<IProcess> runningProcesses = machine.getProcessLister()
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapterFactory.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapterFactory.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/launcher/Sb1MaemoLauncherAdapterFactory.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -14,10 +14,17 @@
import org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
+/**
+ * @author baranov
+ *
+ */
public class Sb1MaemoLauncherAdapterFactory implements IAdapterFactory {
private static final Class<IMaemoLauncherAdapter> MAEMO_LAUNCHER_ADAPTER = IMaemoLauncherAdapter.class;
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+ */
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType.equals(MAEMO_LAUNCHER_ADAPTER)) {
if (adaptableObject instanceof IScratchbox1SDKTarget) {
@@ -27,8 +34,10 @@
return null;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+ */
public Class[] getAdapterList() {
- // TODO Auto-generated method stub
return new Class[]{MAEMO_LAUNCHER_ADAPTER};
}
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/conf/sb2_prefs.xml
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/conf/sb2_prefs.xml 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/conf/sb2_prefs.xml 2008-11-07 11:38:59 UTC (rev 927)
@@ -14,8 +14,10 @@
<entry key="SB2_INSTALL_MAPPING_MODE">emulate</entry>
<entry key="SB2_LOG_LEVEL"></entry>
- <entry key="SB2_EXEC_COMMAND">sb2 -Qx -m ${MAPPING_MODE} ${LOG_OPTION} -t ${TARGET} "${{COMMAND}} ${{ARGS}}"</entry>
+ <!-- entry key="SB2_EXEC_COMMAND">sb2 -Qx -m ${MAPPING_MODE} ${LOG_OPTION} -t ${TARGET} "${{COMMAND}} ${{ARGS}}"</entry -->
+ <entry key="SB2_EXEC_COMMAND">maemo-sdk enter runtime ${TARGET} "${{COMMAND}} ${{ARGS}}"</entry>
+
<!-- this qemu-arm link is expected to be valid; we don't try to substitute unlike for sb1: see GetGdbQemuCommandPatternCommand -->
<entry key="SB2_GDB_REMOTE_QEMU">sb2-qemu-arm -g ${PORT}</entry>
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/command/MaemoSdkCommand.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -97,19 +97,4 @@
return Arrays.asList(result.getStdoutLines());
}
- public Process runStandalone(String targetName,String path) {
- Process process = null;
- String sbPath = "/tmp"+path.substring(path.lastIndexOf(File.separator));
- try{
- runProcess("cp",path,sbPath);
- process = createProcess(Arrays.asList(
- MAEMO_SDK,
- COMMAND_ENTER,
- SPECIFIER_RUNTIME,
- targetName,"'run-standalone.sh "+sbPath+"'"));
- }catch(MicaException e){
-
- }
- return process;
- }
}
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapter.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapter.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapter.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -16,6 +16,10 @@
import org.maemo.esbox.scratchbox.sb2.sdk.IScratchbox2SDKTarget;
import org.maemo.mica.common.core.MicaException;
+/**
+ * @author baranov
+ *
+ */
public class Sb2MaemoLauncherAdapter implements IMaemoLauncherAdapter {
private final IScratchbox2SDKTarget target;
private MaemoSdkCommand command;
@@ -25,31 +29,39 @@
command = ((Scratchbox2SDK)target.getSDK()).getMaemoSdkCommand();
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#isMaemoRunning()
+ */
public boolean isMaemoRunning() throws MicaException {
return command.isUp(target.getName());
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#killMaemo()
+ */
public void killMaemo() throws MicaException {
stopMaemo();
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#restartMaemo()
+ */
public void restartMaemo() throws MicaException {
startMaemo();
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#startMaemo()
+ */
public void startMaemo() throws MicaException {
command.startMaemo(target.getName());
}
+ /* (non-Javadoc)
+ * @see org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter#stopMaemo()
+ */
public void stopMaemo() throws MicaException {
command.stopMaemo(target.getName());
}
- /**
- * @param path - host environment path
- * @return
- */
- public Process createStandaloneProcess(String path){
- return command.runStandalone(target.getName(),path);
- }
}
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Sb2MaemoLauncherAdapterFactory.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -14,10 +14,17 @@
import org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter;
import org.maemo.esbox.scratchbox.sb2.sdk.IScratchbox2SDKTarget;
+/**
+ * @author baranov
+ *
+ */
public class Sb2MaemoLauncherAdapterFactory implements IAdapterFactory {
private static final Class<IMaemoLauncherAdapter> MAEMO_LAUNCHER_ADAPTER = IMaemoLauncherAdapter.class;
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+ */
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType.equals(MAEMO_LAUNCHER_ADAPTER)) {
if (adaptableObject instanceof IScratchbox2SDKTarget) {
@@ -27,6 +34,9 @@
return null;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+ */
public Class[] getAdapterList() {
return new Class[]{MAEMO_LAUNCHER_ADAPTER};
}
Modified: branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java
===================================================================
--- branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java 2008-11-06 16:21:43 UTC (rev 926)
+++ branches/sdkPlusSupport/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/launcher/Scratchbox2ProcessLauncher.java 2008-11-07 11:38:59 UTC (rev 927)
@@ -20,6 +20,8 @@
import org.maemo.mica.common.core.process.*;
import org.maemo.mica.common.core.sdk.ISDKTarget;
+import java.io.File;
+import java.util.Arrays;
import java.util.List;
/**
@@ -67,7 +69,12 @@
private static List<String> encodeArgumentArray(ISDKTarget sdkTarget,
List<String> cmdLine, String modeKey) {
-
+
+ //workaround!!!!
+ String sbPath = copyExecutableToTmp(sdkTarget.getSDK().getMachineProcessLauncherFactory(),CommandLineArguments.toCommandLine(cmdLine
+ .subList(1, cmdLine.size())));
+ //end of workaround!!!
+
// Encode the launch command by replacing the arguments
// representing template arguments with the actual values.
//
@@ -75,8 +82,7 @@
substitutor.define("TARGET", sdkTarget.getName());
substitutor.define("COMMAND", cmdLine.get(0));
- substitutor.define("ARGS", CommandLineArguments.toCommandLine(cmdLine
- .subList(1, cmdLine.size())));
+ substitutor.define("ARGS", sbPath);
String level = sdkTarget
.getPreferenceValue(SB2PreferenceConstants.SB2_LOG_LEVEL);
@@ -95,12 +101,21 @@
// replace variables
commandPattern = substitutor.substitute(commandPattern);
-
+
List<String> commandArgs = CommandLineArguments
.createFromCommandLine(commandPattern);
return commandArgs;
}
+ private static String copyExecutableToTmp(IProcessLauncherFactory factory,String hostPath) {
+ String sbPath = "/tmp"+hostPath.substring(hostPath.lastIndexOf(File.separator));
+ try{
+ ProcessLauncherUtils.launchAndReadStandardStreams(factory, Arrays.asList("cp",hostPath,sbPath));
+ }catch(MicaException e){
+ }
+ return sbPath;
+ }
+
/*
* (non-Javadoc)
*
@@ -108,15 +123,9 @@
*/
@Override
protected Process doCreateProcess() throws Exception {
- Sb2MaemoLauncherAdapter launcher = (Sb2MaemoLauncherAdapter)sdkTarget.getAdapter(IMaemoLauncherAdapter.class);
- if(launcher.isMaemoRunning()){
- String path = getLaunchCommandArguments().get(6).replace("run-standalone.sh ", "");
- return launcher.createStandaloneProcess(path);
- }else{
- return sdkTarget.getSDK().getMachine().createProcess(
+ return sdkTarget.getSDK().getMachine().createProcess(
getLaunchCurrentWorkingDirectory(),
getLaunchCommandArguments(),
getLaunchEnvironmentModifierBlock(), isUsePTY());
- }
}
}
More information about the Esbox-commits
mailing list