[Esbox-commits] r1003 - in branches/work_Petr: org.maemo.esbox.maemosdk.core org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands org.maemo.esbox.scratchbox.sb1 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/scratchbox/sb1/sdk
baranov at garage.maemo.org
baranov at garage.maemo.org
Wed Nov 26 15:58:56 EET 2008
Author: baranov
Date: 2008-11-26 15:58:55 +0200 (Wed, 26 Nov 2008)
New Revision: 1003
Added:
branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseSb1Test.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapter.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapterFactory.java
Modified:
branches/work_Petr/org.maemo.esbox.maemosdk.core/plugin.xml
branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/plugin.xml
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDK.java
branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDKTarget.java
Log:
Task: IDE modifies list of devkits in existing target
Modified: branches/work_Petr/org.maemo.esbox.maemosdk.core/plugin.xml
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.core/plugin.xml 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.core/plugin.xml 2008-11-26 13:58:55 UTC (rev 1003)
@@ -50,13 +50,6 @@
</adapter>
</factory>
<!-- generic maemo -->
- <factory
- adaptableType="org.maemo.mica.common.core.sdk.ISDKTarget"
- class="org.maemo.esbox.internal.maemosdk.core.adapters.Scratchbox1PrepareTargetProcessLaunchAdapterFactory">
- <adapter
- type="org.maemo.mica.common.core.adapters.IPrepareTargetProcessLaunchAdapter">
- </adapter>
- </factory>
</extension>
<extension
Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -29,6 +29,7 @@
suite.addTestSuite(TestSB2SDKProvider.class);
suite.addTestSuite(TestProcessLauncher.class);
suite.addTestSuite(TestSB1SDKProvider.class);
+ suite.addTestSuite(TestSb1SDKTarget.class);
//$JUnit-END$
return suite;
}
Added: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java (rev 0)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (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:
+ * Petr Baranov (Nokia) - initial API and implementation
+ *******************************************************************************/
+package org.maemo.esbox.scratchbox.tests;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
+import org.maemo.esbox.scratchbox.tests.commands.BaseSb1Test;
+import org.maemo.mica.common.core.MicaException;
+
+
+public class TestSb1SDKTarget extends BaseSb1Test{
+
+ @Test
+ public void testGetCompiler() throws Exception{
+ List<String> compilers = sb1Sdk.getCompilers();
+ String compiler = targetARMEL.getCompiler();
+ assertIsItem(compilers, compiler);
+ }
+
+ @Test
+ public void testGetCpuTransp() throws Exception{
+ List<String> cpuTrasps = sb1Sdk.getCputransp();
+
+ String cpuTransp = targetARMEL.getCputransp();
+ assertIsItem(cpuTrasps, cpuTransp);
+
+ cpuTransp = targetX86.getCputransp();
+ assertEquals("none", cpuTransp);
+ }
+
+ @Test
+ public void testGetDevkit() throws Exception {
+ List<String> devkits = sb1Sdk.getDevkits();
+
+ List<String> targetDevkits = targetARMEL.getDevkit();
+ assertAreItems(devkits, targetDevkits);
+
+ targetDevkits = targetX86.getDevkit();
+ assertAreItems(devkits, targetDevkits);
+ }
+
+ @Test
+ public void testAddNewDevkit() throws Exception {
+ testAddNewDevkit(targetARMEL);
+ testAddNewDevkit(targetX86);
+ }
+
+ @Test
+ public void testAddExistingDevkit() throws Exception {
+ testAddExistingDevkit(targetARMEL);
+ testAddExistingDevkit(targetX86);
+ }
+
+ @Test
+ public void testAddFakeDevkit() throws Exception {
+ testFakeDevkit(targetARMEL);
+ testFakeDevkit(targetX86);
+ }
+
+ //--private
+ private void assertAreItems(List<String> list, List<String> items) {
+ for(String devkit:items)
+ assertIsItem(list, devkit);
+ }
+
+ public static void assertIsItem(List<String> list, String item) {
+ assertNotNull(item);
+ assertTrue(list.contains(item));
+ }
+
+
+ private void testAddNewDevkit(IScratchbox1SDKTarget target) throws MicaException {
+ List<String> devkits = sb1Sdk.getDevkits();
+ List<String> targetDevkits = target.getDevkit();
+ String newDevkit = null;
+ for(String tmpDk : devkits){
+ // do not use debian-lenny
+ if(!tmpDk.equals("debian-lenny")&&!targetDevkits.contains(tmpDk)){
+ newDevkit = tmpDk;
+ break;
+ }
+ }
+ if(newDevkit==null)
+ return;
+ //fail("Impossible to add new devkit, since target "+target.getName()+" already includes all devkits.");
+ assertTrue(target.addDevkit(newDevkit));
+ targetDevkits = target.getDevkit();
+ assertTrue(targetDevkits.contains(newDevkit));
+ }
+
+
+
+ private void testAddExistingDevkit(IScratchbox1SDKTarget target) throws MicaException {
+ List<String> targetDevkits = target.getDevkit();
+ if(targetDevkits.isEmpty())
+ fail("Impossible to add existing devkit, since target "+target.getName()+" does not have any devkit.");
+ String existingDevkit = targetDevkits.get(0);
+ try{
+ assertFalse(target.addDevkit(existingDevkit));
+ }catch(MicaException e){
+ fail("Exception should not be thrown.");
+ }
+ }
+
+
+
+ private void testFakeDevkit(IScratchbox1SDKTarget target) throws MicaException {
+ List<String> dkBefore = target.getDevkit();
+ String fakeDevkit = "fakedk";
+ try{
+ target.addDevkit(fakeDevkit);
+ fail("Exception should be thrown");
+ }catch(MicaException e){
+ List<String> dkAfter = target.getDevkit();
+ assertEquals(dkBefore, dkAfter);
+ }
+ }
+
+
+}
Added: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseSb1Test.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseSb1Test.java (rev 0)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/BaseSb1Test.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (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:
+ * Petr Baranov (Nokia) - initial API and implementation
+ *******************************************************************************/
+package org.maemo.esbox.scratchbox.tests.commands;
+
+import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+
+public abstract class BaseSb1Test extends BaseTest {
+
+ protected IScratchbox1SDKTarget targetARMEL = null;
+ protected IScratchbox1SDKTarget targetX86 = null;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ for (ISDKTarget tmp:sb1Sdk.getSDKTargets()) {
+ if(tmp.getArchitecture().equals(IScratchboxSDKTarget.ARCHITECTURE_ARMEL))
+ targetARMEL=(IScratchbox1SDKTarget)tmp;
+ else if(tmp.getArchitecture().equals(IScratchboxSDKTarget.ARCHITECTURE_X86))
+ targetX86 = (IScratchbox1SDKTarget)tmp;
+ }
+ }
+
+
+}
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/plugin.xml
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/plugin.xml 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/plugin.xml 2008-11-26 13:58:55 UTC (rev 1003)
@@ -39,6 +39,13 @@
type="org.maemo.esbox.internal.api.maemosdk.core.tools.IMaemoLauncherAdapter">
</adapter>
</factory>
+ <factory
+ adaptableType="org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget"
+ class="org.maemo.esbox.internal.scratchbox.sb1.core.adapters.Sb1TargetConfigurationAdapterFactory">
+ <adapter
+ type="org.maemo.mica.common.core.adapters.ITargetConfiguratorAdapter">
+ </adapter>
+ </factory>
</extension>
<extension
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/CreateTargetCommand.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -48,6 +48,26 @@
throw new ScratchboxInvalidParameterException(
"Invalid number of parameters");
+ String setupTargetCommand = createCli(param,false);
+ Process process = createProcess(setupTargetCommand, null);
+ getInputFromProcessAndWait(process, false, 0);
+ sdk.refresh();
+ return true;
+ }
+
+ public Object forceCommand(List<String> param) throws MicaException {
+ if (!this.checkParameters(param))
+ throw new ScratchboxInvalidParameterException(
+ "Invalid number of parameters");
+
+ String setupTargetCommand = createCli(param,true);
+ Process process = createProcess(setupTargetCommand, null);
+ getInputFromProcessAndWait(process, false, 0);
+ sdk.refresh();
+ return true;
+ }
+
+ private String createCli(List<String> param, boolean force) {
String targetName = param.get(0);
String compilerName = param.get(1);
String devkitsNames = param.get(2);
@@ -60,16 +80,16 @@
compilerName, devkitsNames, cputranspName);
String setupTargetCommand = this.replaceScratchboxConfigCommand(
setupTargetAction, setupActionOptionsReplaced);
-
- Process process = createProcess(setupTargetCommand, null);
-
- getInputFromProcessAndWait(process, false, 0);
-
- sdk.refresh();
-
- return true;
+
+ if(force)
+ setupTargetCommand += " "+commandAbstractor
+ .getPreferenceValue(SB1PreferenceConstants.SB1_SETUP_OPT_FORCE);
+
+ return setupTargetCommand;
}
-
+
+
+
/**
* Replace the options of action SETUP. The options of SETUP action are
* different from the other ones, so this method replaces the variables
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -10,24 +10,39 @@
*******************************************************************************/
package org.maemo.esbox.internal.scratchbox.sb1.core;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
-import org.maemo.esbox.internal.api.scratchbox.core.sdk.*;
+import org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDK;
+import org.maemo.esbox.internal.api.scratchbox.core.sdk.CacheUtils;
import org.maemo.esbox.internal.scratchbox.sb1.Activator;
-import org.maemo.esbox.internal.scratchbox.sb1.command.*;
+import org.maemo.esbox.internal.scratchbox.sb1.command.CreateTargetCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.GetCurrentTargetCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.GetVersionScratchboxCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.KillallCommand;
+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.command.RemoveTargetCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.SelectTargetCommand;
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.machine.IMachine;
import org.maemo.mica.common.core.machine.MachineUtils;
-import org.maemo.mica.common.core.sdk.*;
+import org.maemo.mica.common.core.sdk.IPreferenceProvider;
+import org.maemo.mica.common.core.sdk.ISDKPlatform;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.core.sdk.commands.ICommandAbstractor;
import org.maemo.mica.internal.api.common.core.sdk.BaseSDKPlatform;
import org.maemo.mica.maemosdk.core.MaemoSDKEngine;
import org.maemo.mica.maemosdk.core.MaemoSDKInfo;
-import java.util.*;
-
public class Scratchbox1SDK extends AbstractScratchboxSDK implements
IScratchbox1SDK {
@@ -90,19 +105,37 @@
*/
public boolean createTarget(String targetName, String compiler,
String devkits, String cputransp) throws MicaException {
+ return createTarget(targetName, compiler, devkits, cputransp, false);
+ }
+
+ public boolean createTarget(String targetName, String compiler,
+ List<String> devkits, String cputransp,boolean force) throws MicaException {
+ String devkitsStr = "";
+ for(String dk : devkits){
+ if(devkitsStr.length()!=0)devkitsStr+= ":";
+ devkitsStr += dk;
+ }
+ return createTarget(targetName, compiler, devkitsStr, cputransp,force);
+ }
+
+ protected boolean createTarget(String targetName, String compiler,
+ String devkits, String cputransp,boolean force) throws MicaException {
List<String> params = new ArrayList<String>();
params.add(targetName);
params.add(compiler);
params.add(devkits);
params.add(cputransp);
-
+
CreateTargetCommand createTargetCommand = new CreateTargetCommand(this,
getCommandAbstractor());
CacheUtils.getInstance().setCachedValue(SB_TARGETS, null);
- return (Boolean) createTargetCommand.performCommand(params);
+ if(force)
+ return (Boolean) createTargetCommand.forceCommand(params);
+ else
+ return (Boolean) createTargetCommand.performCommand(params);
}
-
+
/*
* (non-Javadoc)
*
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDKTarget.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -12,14 +12,20 @@
import org.eclipse.core.runtime.IPath;
import org.maemo.esbox.internal.api.scratchbox.core.sdk.AbstractScratchboxSDKTarget;
+import org.maemo.esbox.internal.scratchbox.sb1.command.CreateTargetCommand;
import org.maemo.esbox.internal.scratchbox.sb1.command.GetGdbQemuCommandPatternCommand;
+import org.maemo.esbox.internal.scratchbox.sb1.command.ShowTargetCommand;
import org.maemo.esbox.internal.scratchbox.sb1.launcher.Scratchbox1ProcessLauncherFactory;
+import org.maemo.esbox.scratchbox.core.scratchbox.ScratchboxTarget;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
import org.maemo.mica.common.core.CorePreferenceConstants;
import org.maemo.mica.common.core.MicaException;
import org.maemo.mica.common.core.process.IProcessLauncherFactory;
import org.maemo.mica.common.core.sdk.ISDKPlatform;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -28,9 +34,11 @@
* @author baranov
*
*/
-public class Scratchbox1SDKTarget extends AbstractScratchboxSDKTarget {
+public class Scratchbox1SDKTarget extends AbstractScratchboxSDKTarget implements
+ IScratchbox1SDKTarget {
private IPath targetRoot;
+ private ScratchboxTarget targetInfo;
public Scratchbox1SDKTarget(Scratchbox1SDK sdk, ISDKPlatform platform,
String architecture, String target, IPath targetRoot) {
@@ -63,7 +71,8 @@
/*
* (non-Javadoc)
*
- * @see org.maemo.mica.common.core.sdk.ISDKTarget#getProcessLauncherFactory()
+ * @see
+ * org.maemo.mica.common.core.sdk.ISDKTarget#getProcessLauncherFactory()
*/
public IProcessLauncherFactory getProcessLauncherFactory() {
return new Scratchbox1ProcessLauncherFactory(this, false);
@@ -92,4 +101,65 @@
arguments.add(architecture);
return command.performCommand(arguments);
}
+
+ public String getCompiler() throws MicaException {
+ return getTargetInfo().getCompiler();
+ }
+
+ public String getCputransp() throws MicaException {
+ return getTargetInfo().getCputransp();
+ }
+
+ public List<String> getDevkit() throws MicaException {
+ return getTargetInfo().getDevkits();
+ }
+
+ public boolean addDevkit(String newDevkit) throws MicaException {
+ IScratchbox1SDK sdk = (IScratchbox1SDK) this.getSDK();
+ List<String> possibleDK = sdk.getDevkits();
+ List<String> existingDK = this.getDevkit();
+ if (existingDK.contains(newDevkit))
+ return false;
+ else if (possibleDK.contains(newDevkit)) {
+ existingDK.add(newDevkit);
+ doAddDevkits(existingDK);
+ return true;
+ }
+ throw new MicaException("No such devkit: " + newDevkit);
+ }
+
+ public void addDevkits(List<String> newDevkits) throws MicaException {
+ IScratchbox1SDK sdk = (IScratchbox1SDK) this.getSDK();
+ List<String> possibleDK = sdk.getDevkits();
+ List<String> existingDK = this.getDevkit();
+ List<String> dtToAdd = new ArrayList<String>();
+ for (String devkit : newDevkits) {
+ if (possibleDK.contains(devkit) && !existingDK.contains(devkit)) {
+ dtToAdd.add(devkit);
+ }
+ }
+ dtToAdd.addAll(existingDK);
+ doAddDevkits(dtToAdd);
+ }
+
+ private void doAddDevkits(List<String> existingDK) throws MicaException {
+ IScratchbox1SDK sdk = (IScratchbox1SDK) this.getSDK();
+ sdk.createTarget(this.getName(), this.getCompiler(), existingDK, this
+ .getCputransp(), true);
+ this.refreshTargetInfo();
+ }
+
+ private ScratchboxTarget getTargetInfo() throws MicaException {
+ if (targetInfo == null) {
+ ShowTargetCommand showTargetCommand = new ShowTargetCommand(this
+ .getCommandAbstractor());
+ targetInfo = showTargetCommand.performCommand(Arrays.asList(this
+ .getName()));
+ }
+ return targetInfo;
+ }
+
+ private void refreshTargetInfo() {
+ targetInfo = null;
+ }
}
Added: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapter.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapter.java (rev 0)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapter.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (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:
+ * Petr Baranov (Nokia) - initial API and implementation
+ *******************************************************************************/
+package org.maemo.esbox.internal.scratchbox.sb1.core.adapters;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.maemo.esbox.internal.scratchbox.sb1.Activator;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.adapters.ITargetConfiguratorAdapter;
+
+public class Sb1TargetConfigurationAdapter implements
+ ITargetConfiguratorAdapter {
+ private final IScratchbox1SDKTarget target;
+
+ public Sb1TargetConfigurationAdapter(IScratchbox1SDKTarget target) {
+ this.target = target;
+ }
+
+ public void addDevkits(List<String> newDevkit) {
+ try {
+ target.addDevkits(newDevkit);
+ } catch (MicaException e) {
+ Activator.getErrorLogger().log(IStatus.WARNING,
+ "Template requires nonexisting devkit.", e);
+ }
+ }
+
+ public boolean isTargetDevkit(String devkit) {
+ try {
+ return target.getDevkit().contains(devkit);
+ } catch (MicaException e) {
+ Activator.getErrorLogger().log(IStatus.WARNING,
+ "Template requires nonexisting devkit.", e);
+ }
+ return false;
+ }
+
+}
Added: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapterFactory.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapterFactory.java (rev 0)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/adapters/Sb1TargetConfigurationAdapterFactory.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (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:
+ * Petr Baranov (Nokia) - initial API and implementation
+ *******************************************************************************/
+package org.maemo.esbox.internal.scratchbox.sb1.core.adapters;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDKTarget;
+import org.maemo.mica.common.core.adapters.ITargetConfiguratorAdapter;
+
+public class Sb1TargetConfigurationAdapterFactory implements IAdapterFactory {
+
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adapterType.equals(ITargetConfiguratorAdapter.class)) {
+ if (adaptableObject instanceof IScratchbox1SDKTarget) {
+ return new Sb1TargetConfigurationAdapter(
+ (IScratchbox1SDKTarget) adaptableObject);
+ }
+ }
+ return null;
+ }
+
+ public Class[] getAdapterList() {
+ return new Class[] { ITargetConfiguratorAdapter.class };
+ }
+
+}
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDK.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDK.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDK.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -71,4 +71,7 @@
* if some problem related to Scratchbox communication occurs.
*/
public boolean killProcess(String signal) throws MicaException;
+
+ public boolean createTarget(String targetName, String compiler,
+ List<String> devkits, String cputransp, boolean force) throws MicaException;
}
Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDKTarget.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDKTarget.java 2008-11-25 23:37:10 UTC (rev 1002)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/scratchbox/sb1/sdk/IScratchbox1SDKTarget.java 2008-11-26 13:58:55 UTC (rev 1003)
@@ -10,8 +10,20 @@
*******************************************************************************/
package org.maemo.esbox.scratchbox.sb1.sdk;
+import java.util.List;
+
import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
+import org.maemo.mica.common.core.MicaException;
public interface IScratchbox1SDKTarget extends IScratchboxSDKTarget {
+ String getCompiler() throws MicaException;
+
+ String getCputransp() throws MicaException;
+
+ List<String> getDevkit() throws MicaException;
+
+ boolean addDevkit(String newDevkits) throws MicaException;
+
+ public void addDevkits(List<String> newDevkits) throws MicaException;
}
More information about the Esbox-commits
mailing list