Skip to content

Commit 8b88e2f

Browse files
author
jantje
committed
#1339 removed platformtree, internalPackageManager and more
Basically platformtree was about the same thing as what was read by Gson As I added the GSon read classes to the api there was no more need for platformtree The same goes for internalPackageManager
1 parent deb3175 commit 8b88e2f

File tree

14 files changed

+974
-1168
lines changed

14 files changed

+974
-1168
lines changed

io.sloeber.core/META-INF/MANIFEST.MF

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Export-Package: cc.arduino.packages;x-internal:=true,
3232
cc.arduino.packages.ssh;x-internal:=true,
3333
io.sloeber.core;x-friends:="io.sloeber.tests",
3434
io.sloeber.core.api,
35+
io.sloeber.core.api.Json.packages,
3536
io.sloeber.core.builder;x-internal:=true,
3637
io.sloeber.core.common;x-friends:="io.sloeber.tests",
3738
io.sloeber.core.communication;x-internal:=true,

io.sloeber.core/src/io/sloeber/core/Activator.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.sloeber.core;
22

33
import static io.sloeber.core.common.Const.*;
4-
import static io.sloeber.core.managers.InternalPackageManager.*;
54
import static org.eclipse.core.resources.IResource.*;
65

76
import java.io.File;
@@ -252,7 +251,7 @@ protected IStatus run(IProgressMonitor monitor) {
252251

253252
installOtherStuff();
254253

255-
startup_Pluging(monitor);
254+
PackageManager.startup_Pluging(monitor);
256255

257256
monitor.setTaskName("Done!");
258257
if (InstancePreferences.useBonjour()) {
@@ -418,14 +417,14 @@ private static void installOtherStuff() {
418417
}
419418
if (!localMakePath.append(MAKE_EXE).toFile().exists()) {
420419
IProgressMonitor monitor = new NullProgressMonitor();
421-
Common.log(downloadAndInstall(MAKE_URL, MAKE_ZIP, localMakePath, false, monitor));
420+
Common.log(PackageManager.downloadAndInstall(MAKE_URL, MAKE_ZIP, localMakePath, false, monitor));
422421
}
423422

424423
// Install awk if needed
425424
IPath localAwkPath = ConfigurationPreferences.getAwkPath();
426425
if (!localAwkPath.append(AWK_EXE).toFile().exists()) {
427426
IProgressMonitor monitor = new NullProgressMonitor();
428-
Common.log(downloadAndInstall(AWK_URL, AWK_ZIP, localAwkPath, false, monitor));
427+
Common.log(PackageManager.downloadAndInstall(AWK_URL, AWK_ZIP, localAwkPath, false, monitor));
429428
}
430429
}
431430
}

io.sloeber.core/src/io/sloeber/core/api/BoardDescription.java

+10-11
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.sloeber.core.api.Json.packages.ArduinoPlatform;
2626
import io.sloeber.core.common.Common;
2727
import io.sloeber.core.common.ConfigurationPreferences;
28-
import io.sloeber.core.managers.InternalPackageManager;
2928
import io.sloeber.core.tools.Helpers;
3029
import io.sloeber.core.tools.KeyValue;
3130
import io.sloeber.core.txt.BoardTxtFile;
@@ -194,7 +193,7 @@ private void ParseSection() {
194193
String refVendor = valueSplit[0];
195194
String actualValue = valueSplit[1];
196195
myBoardsCore = actualValue;
197-
myReferencedCorePlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor, architecture);
196+
myReferencedCorePlatformPath = PackageManager.getPlatformInstallPath(refVendor, architecture);
198197
if (this.myReferencedCorePlatformPath == null) {
199198
Common.log(new Status(IStatus.ERROR, CORE_PLUGIN_ID,
200199
Helpers_tool_reference_missing.replace(TOOL_TAG, core)
@@ -208,7 +207,7 @@ private void ParseSection() {
208207
VersionNumber refVersion = new VersionNumber(valueSplit[2]);
209208
String actualValue = valueSplit[3];
210209
myBoardsCore = actualValue;
211-
myReferencedCorePlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor, refArchitecture,
210+
myReferencedCorePlatformPath = PackageManager.getPlatformInstallPath(refVendor, refArchitecture,
212211
refVersion);
213212
if (this.myReferencedCorePlatformPath == null) {
214213
Common.log(new Status(IStatus.ERROR, CORE_PLUGIN_ID,
@@ -227,7 +226,7 @@ private void ParseSection() {
227226
String refVendor = valueSplit[0];
228227
String actualValue = valueSplit[1];
229228
this.myBoardsVariant = actualValue;
230-
this.myReferencedBoardVariantPlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor,
229+
this.myReferencedBoardVariantPlatformPath = PackageManager.getPlatformInstallPath(refVendor,
231230
architecture);
232231
if (this.myReferencedBoardVariantPlatformPath == null) {
233232
Common.log(new Status(IStatus.ERROR, CORE_PLUGIN_ID,
@@ -243,10 +242,10 @@ private void ParseSection() {
243242
String actualValue = valueSplit[3];
244243
this.myBoardsVariant = actualValue;
245244
if ("*".equals(refVersion)) { //$NON-NLS-1$
246-
this.myReferencedBoardVariantPlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor,
245+
this.myReferencedBoardVariantPlatformPath = PackageManager.getPlatformInstallPath(refVendor,
247246
refArchitecture);
248247
} else {
249-
this.myReferencedBoardVariantPlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor,
248+
this.myReferencedBoardVariantPlatformPath = PackageManager.getPlatformInstallPath(refVendor,
250249
refArchitecture, refVersion);
251250
}
252251
if (this.myReferencedBoardVariantPlatformPath == null) {
@@ -266,7 +265,7 @@ private void ParseSection() {
266265
String refVendor = valueSplit[0];
267266
String actualValue = valueSplit[1];
268267
this.myUploadTool = actualValue;
269-
this.myReferencedUploadToolPlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor,
268+
this.myReferencedUploadToolPlatformPath = PackageManager.getPlatformInstallPath(refVendor,
270269
architecture);
271270
if (this.myReferencedUploadToolPlatformPath == null) {
272271
Common.log(new Status(IStatus.ERROR, CORE_PLUGIN_ID,
@@ -281,7 +280,7 @@ private void ParseSection() {
281280
VersionNumber refVersion = new VersionNumber(valueSplit[2]);
282281
String actualValue = valueSplit[3];
283282
this.myUploadTool = actualValue;
284-
this.myReferencedUploadToolPlatformPath = InternalPackageManager.getPlatformInstallPath(refVendor,
283+
this.myReferencedUploadToolPlatformPath = PackageManager.getPlatformInstallPath(refVendor,
285284
refArchitecture, refVersion);
286285
if (this.myReferencedUploadToolPlatformPath == null) {
287286
Common.log(new Status(IStatus.ERROR, CORE_PLUGIN_ID,
@@ -669,7 +668,7 @@ public IPath getreferencedHardwarePath() {
669668
*/
670669
public IPath getArduinoPlatformPath() {
671670
updateWhenDirty();
672-
return InternalPackageManager.getPlatformInstallPath(VendorArduino, getArchitecture());
671+
return PackageManager.getPlatformInstallPath(VendorArduino, getArchitecture());
673672
}
674673

675674
/**
@@ -894,8 +893,8 @@ private Map<String, String> getEnVarPlatformInfo() {
894893
return new HashMap<>();
895894
}
896895

897-
ArduinoPlatform referencingPlatform = InternalPackageManager.getPlatform(referencingPlatformPath);
898-
ArduinoPlatform referencedPlatform = InternalPackageManager.getPlatform(referencedPlatformPath);
896+
ArduinoPlatform referencingPlatform = PackageManager.getPlatform(referencingPlatformPath);
897+
ArduinoPlatform referencedPlatform = PackageManager.getPlatform(referencedPlatformPath);
899898

900899
boolean jsonBasedPlatformManagement = !Preferences.getUseArduinoToolSelection();
901900
if (jsonBasedPlatformManagement) {

io.sloeber.core/src/io/sloeber/core/api/Json/library/LibraryJson.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
import com.google.gson.JsonParseException;
2424

2525
import io.sloeber.core.Activator;
26+
import io.sloeber.core.api.PackageManager;
2627
import io.sloeber.core.api.VersionNumber;
2728
import io.sloeber.core.common.Common;
2829
import io.sloeber.core.common.ConfigurationPreferences;
29-
import io.sloeber.core.managers.InternalPackageManager;
3030
import io.sloeber.core.tools.FileModifiers;
3131

3232
/**
@@ -173,7 +173,7 @@ public IStatus install(IProgressMonitor monitor) {
173173
if (isInstalled()) {
174174
return Status.OK_STATUS;
175175
}
176-
IStatus ret = InternalPackageManager.downloadAndInstall(this.url, this.archiveFileName, getInstallPath(), false,
176+
IStatus ret = PackageManager.downloadAndInstall(this.url, this.archiveFileName, getInstallPath(), false,
177177
monitor);
178178
FileModifiers.addPragmaOnce(getInstallPath());
179179
return ret;

io.sloeber.core/src/io/sloeber/core/api/Json/packages/Package.java renamed to io.sloeber.core/src/io/sloeber/core/api/Json/packages/ArduinoPackage.java

+46-8
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.google.gson.JsonObject;
2222
import com.google.gson.JsonParseException;
2323

24-
public class Package implements Comparable<Package> {
24+
public class ArduinoPackage implements Comparable<ArduinoPackage> {
2525

2626
private String name;
2727
private String maintainer;
@@ -33,7 +33,7 @@ public class Package implements Comparable<Package> {
3333
private transient PackageIndex myParent = null;
3434

3535
@SuppressWarnings("nls")
36-
public Package(JsonElement json, PackageIndex packageIndex) {
36+
public ArduinoPackage(JsonElement json, PackageIndex packageIndex) {
3737
myParent = packageIndex;
3838
JsonObject jsonObject = json.getAsJsonObject();
3939

@@ -167,12 +167,29 @@ public ArduinoPlatform getPlatform(String platformName, String version) {
167167
return null;
168168
}
169169

170+
/**
171+
* Given a platform name return all the platform's with that name.
172+
* This results in a list of all the known versions of this platform
173+
*
174+
* @param platformName
175+
* @return all the known versions of this platform
176+
*/
177+
public List<ArduinoPlatform> getPlatformVersions(String platformName) {
178+
List<ArduinoPlatform> versionList = new ArrayList<>();
179+
for (ArduinoPlatform platform : this.platforms) {
180+
if (platform.getName().equals(platformName)) {
181+
versionList.add(platform);
182+
}
183+
}
184+
return versionList;
185+
}
186+
170187
public List<Tool> getTools() {
171-
return this.tools;
188+
return tools;
172189
}
173190

174191
public Tool getTool(String toolName, String version) {
175-
for (Tool tool : this.tools) {
192+
for (Tool tool : tools) {
176193
if (tool.getName().trim().equals(toolName) && tool.getVersion().equals(version)) {
177194
return tool;
178195
}
@@ -194,8 +211,8 @@ public Tool getLatestTool(String toolName) {
194211

195212
@Override
196213
public boolean equals(Object obj) {
197-
if (obj instanceof Package) {
198-
return ((Package) obj).getName().equals(this.name);
214+
if (obj instanceof ArduinoPackage) {
215+
return ((ArduinoPackage) obj).getName().equals(this.name);
199216
}
200217
return super.equals(obj);
201218
}
@@ -206,7 +223,7 @@ public int hashCode() {
206223
}
207224

208225
@Override
209-
public int compareTo(Package other) {
226+
public int compareTo(ArduinoPackage other) {
210227
return this.name.compareTo(other.name);
211228
}
212229

@@ -219,7 +236,7 @@ public void onlyKeepLatestPlatforms() {
219236
}
220237
}
221238

222-
public boolean hasInstalledBoards() {
239+
public boolean isInstalled() {
223240
for (ArduinoPlatform platform : this.platforms) {
224241
if (platform.isInstalled()) {
225242
return true;
@@ -228,4 +245,25 @@ public boolean hasInstalledBoards() {
228245
return false;
229246
}
230247

248+
/**
249+
* Is any version of the platform installed
250+
*
251+
* @param platformName
252+
* @return if a platform with this name is installed
253+
*/
254+
public boolean isAVersionOfThisPlatformInstalled(String platformName) {
255+
for (ArduinoPlatform platform : this.platforms) {
256+
if (platform.getName().equals(platformName)) {
257+
if (platform.isInstalled()) {
258+
return true;
259+
}
260+
}
261+
}
262+
return false;
263+
}
264+
265+
public String getID() {
266+
return name;
267+
}
268+
231269
}

io.sloeber.core/src/io/sloeber/core/api/Json/packages/ArduinoPlatform.java

+34-16
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
import com.google.gson.JsonParseException;
2727

2828
import io.sloeber.core.Activator;
29+
import io.sloeber.core.api.PackageManager;
2930
import io.sloeber.core.api.VersionNumber;
3031
import io.sloeber.core.common.ConfigurationPreferences;
3132
import io.sloeber.core.common.Const;
32-
import io.sloeber.core.managers.InternalPackageManager;
3333

34-
public class ArduinoPlatform {
34+
public class ArduinoPlatform implements Comparable<ArduinoPlatform> {
3535

3636
private String name;
3737
private String architecture;
@@ -44,12 +44,12 @@ public class ArduinoPlatform {
4444
private List<String> boards = new ArrayList<>();
4545
private List<ToolDependency> toolsDependencies = new ArrayList<>();;
4646

47-
private Package myParent;
47+
private ArduinoPackage myParent;
4848

4949
private static final String ID_SEPERATOR = "-"; //$NON-NLS-1$
5050

5151
@SuppressWarnings("nls")
52-
public ArduinoPlatform(JsonElement json, Package parent) {
52+
public ArduinoPlatform(JsonElement json, ArduinoPackage parent) {
5353
myParent = parent;
5454
JsonObject jsonObject = json.getAsJsonObject();
5555

@@ -75,7 +75,7 @@ public ArduinoPlatform(JsonElement json, Package parent) {
7575
}
7676
}
7777

78-
public Package getParent() {
78+
public ArduinoPackage getParent() {
7979
return this.myParent;
8080
}
8181

@@ -119,6 +119,10 @@ public boolean isInstalled() {
119119
return getBoardsFile().exists();
120120
}
121121

122+
public boolean isAVersionOfThisPlatformInstalled() {
123+
return myParent.isAVersionOfThisPlatformInstalled(name);
124+
}
125+
122126
public File getBoardsFile() {
123127
return getInstallPath().append(Const.BOARDS_FILE_NAME).toFile();
124128
}
@@ -128,8 +132,8 @@ public File getPlatformFile() {
128132
}
129133

130134
public IPath getInstallPath() {
131-
IPath stPath = ConfigurationPreferences.getInstallationPathPackages().append(this.myParent.getName())
132-
.append(Const.ARDUINO_HARDWARE_FOLDER_NAME).append(this.architecture).append(this.version.toString());
135+
IPath stPath = ConfigurationPreferences.getInstallationPathPackages().append(this.myParent.getID())
136+
.append(Const.ARDUINO_HARDWARE_FOLDER_NAME).append(getID()).append(this.version.toString());
133137
return stPath;
134138
}
135139

@@ -166,7 +170,7 @@ public IStatus install(IProgressMonitor monitor) {
166170

167171
// Download platform archive
168172
System.out.println("start installing platform " + name + " " + architecture + "(" + version + ")");
169-
IStatus ret = InternalPackageManager.downloadAndInstall(this, false, monitor);
173+
IStatus ret = PackageManager.downloadAndInstall(this, false, monitor);
170174
System.out.println("done installing platform " + name + " " + architecture + "(" + version + ")");
171175
return ret;
172176

@@ -214,16 +218,30 @@ public List<String> getBoardNames() {
214218
}
215219

216220
public String getID() {
217-
String ID = new String();
221+
return architecture;
222+
// String ID = new String();
223+
//
224+
// if (myParent == null) {
225+
// ID = getInstallPath().toString();
226+
// } else {
227+
// ID = myParent.getName();
228+
// }
229+
// ID = ID + ID_SEPERATOR + name + ID_SEPERATOR + architecture;
230+
//
231+
// return ID;
232+
}
218233

219-
if (myParent == null) {
220-
ID = getInstallPath().toString();
221-
} else {
222-
ID = myParent.getName();
223-
}
224-
ID = ID + ID_SEPERATOR + name + ID_SEPERATOR + architecture;
234+
public String getConcattenatedBoardNames() {
235+
return String.join("\n", getBoardNames()); //$NON-NLS-1$
236+
}
237+
238+
public List<ArduinoPlatform> getPlatformVersions() {
239+
return myParent.getPlatformVersions(name);
240+
}
225241

226-
return ID;
242+
@Override
243+
public int compareTo(ArduinoPlatform o) {
244+
return name.compareTo(o.getName());
227245
}
228246

229247
}

0 commit comments

Comments
 (0)