[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