Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
attiasas committed Aug 25, 2023
1 parent 12fc93c commit b96db79
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.attias.open.interactive.simulation.core.backend.engine.AppConfiguration;
import org.attias.open.interactive.simulation.core.backend.utils.ProjectUtils;
import org.attias.open.interactive.simulation.core.utils.Version;

import java.nio.file.Path;
import java.nio.file.Paths;
Expand All @@ -23,6 +24,8 @@ public class Constant {
public static final Path RUNNERS_PATH = HOME_PATH.resolve("runners");
// The version of the runners compatible with the plugin version
public static final String RUNNER_VERSION = "0.1";
// Minimum Gradle version to run the plugin
public static final Version MIN_GRADLE_VERSION = new Version("7.0.0");
// The default name that will be when simulation.ois is created
public static final String DEFAULT_PROJECT_TITLE = "OIS Simulation";
public static final Set<AppConfiguration.AppType> APP_TYPES = new HashSet<>(List.of(AppConfiguration.AppType.Desktop));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.attias.open.interactive.simulation.deployer;

public class OISException extends RuntimeException {
import org.gradle.api.GradleException;

public class OISException extends GradleException {

public OISException(String message) {
super(message);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import org.attias.open.interactive.simulation.core.backend.config.ProjectConfiguration;
import org.attias.open.interactive.simulation.core.backend.engine.AppConfiguration;
import org.attias.open.interactive.simulation.core.utils.IOUtils;
import org.attias.open.interactive.simulation.deployer.tasks.InitializeDeployerTask;
import org.attias.open.interactive.simulation.deployer.tasks.ValidateProjectTask;
import org.attias.open.interactive.simulation.deployer.utils.ExtensionUtils;
import org.attias.open.interactive.simulation.deployer.utils.GradleUtils;
import org.attias.open.interactive.simulation.deployer.utils.PluginUtils;
import org.attias.open.interactive.simulation.deployer.utils.TaskUtils;
import org.gradle.api.GradleException;
Expand All @@ -15,8 +15,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

public class SimulationDeployerPlugin implements Plugin<Project> {
private static final Logger log = LoggerFactory.getLogger(SimulationDeployerPlugin.class);

Expand Down Expand Up @@ -46,6 +44,8 @@ public void apply(Project target) {
}

public boolean isProjectCompatible(Project project) {
// Assert Gradle version compatible
GradleUtils.checkGradleVersionSupported(project.getGradle());
// TODO: to eliminate the setup stage -> to work see artifactory gradle plugin Project<Setting>
// project.getBuildscript().getRepositories().add(project.getBuildscript().getRepositories().mavenLocal());
// project.getBuildscript().getRepositories().add(project.getBuildscript().getRepositories().mavenCentral());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
import java.util.Set;

/**
Expand Down Expand Up @@ -63,12 +61,12 @@ private void cleanTargetAssetsDirectory() {
* Runner Assets directory structure at deploy:
* - TargetAssetsDir
* - project assets....
* - .ois make sure no ois directory exists by project..
* - .ois
* - simulation.ois
* - icons
* - icon.ico (windows)
* - icon.png (linux)
* - icon.icns (mac)
* - icon.ico (windows for all dims)
* - icon.png (windows/linux for all dims)
* - icon.icns (mac for all dims)
* @return configurations that was saved as 'simulation.ois'
* @throws IOException
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class InitializeDeployerTask extends DefaultTask {
private static final Logger log = LoggerFactory.getLogger(InitializeDeployerTask.class);

@TaskAction
public void initialize() throws IOException, GitAPIException {
public void initialize() throws GitAPIException {
Project project = getProject();
String projectPath = getPath();
log.info("{}: Prepare and initialize run environment", projectPath);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.attias.open.interactive.simulation.deployer.utils;

import org.attias.open.interactive.simulation.core.backend.config.ProjectConfiguration;
import org.attias.open.interactive.simulation.core.backend.config.PublishConfiguration;
import org.attias.open.interactive.simulation.core.backend.engine.AppConfiguration;
import org.attias.open.interactive.simulation.core.backend.utils.ProjectUtils;
import org.attias.open.interactive.simulation.core.utils.IOUtils;
Expand Down Expand Up @@ -48,7 +47,7 @@ public static void copyIconsToRunner(ProjectConfiguration configuration, Path ic
int[] sizes = ProjectUtils.ICON_SIZES;
String [] extensions = ProjectUtils.ICON_EXTENSIONS;
Set<String> foundCombinations = new HashSet<>();

// Custom
if (configuration.publish.iconsDir != null) {
Path iconsSrcDir = Paths.get(configuration.publish.iconsDir);
if (iconsSrcDir.toFile().exists()) {
Expand All @@ -69,7 +68,6 @@ public static void copyIconsToRunner(ProjectConfiguration configuration, Path ic
}

private static void copyCustomIcons(Path iconsSrcDir, Path iconsDir, String [] extensions, int[] sizes, Set<String> foundCombinations) throws IOException {
// Custom
File[] customIcons = iconsSrcDir.toFile().listFiles();
for (File icon : customIcons) {
String extension = getIconExtension(icon, extensions);
Expand All @@ -94,45 +92,6 @@ private static void copyCustomIcons(Path iconsSrcDir, Path iconsDir, String [] e
}
}

//
// public static void copyIconsToRunner(PublishConfiguration.IconsConfigurations configurations, Path iconsDir, ClassLoader defaultIconLoader) throws IOException {
// boolean windowsCopied = false;
// boolean linuxCopied = false;
// boolean macCopied = false;
//
// // png: 128, 32, 16
// // ico: 128
// // icns: 128
//
//
//// Paths.get(configurations.pngIconPath).toFile().
// // Override
// if (configurations != null) {
// if (configurations.icoIconPath != null && !configurations.icoIconPath.isBlank()) {
// log.info("Copy ico icon from custom location {}", configurations.icoIconPath);
// windowsCopied = IOUtils.copyFile(Paths.get(configurations.icoIconPath), iconsDir.resolve("icon.ico"), false);
// }
// if (configurations.pngIconPath != null && !configurations.pngIconPath.isBlank()) {
// log.info("Copy png icon from custom location {}", configurations.pngIconPath);
// linuxCopied = IOUtils.copyFile(Paths.get(configurations.pngIconPath), iconsDir.resolve("icon.png"), false);
// }
// if (configurations.icnsIconPath != null && !configurations.icnsIconPath.isBlank()) {
// log.info("Copy icns icon from custom location {}", configurations.icnsIconPath);
// macCopied = IOUtils.copyFile(Paths.get(configurations.icnsIconPath), iconsDir.resolve("icon.icns"), false);
// }
// }
// // Defaults
// if (!windowsCopied) {
// IOUtils.copyFile(defaultIconLoader.getResourceAsStream("icon.ico"), iconsDir.resolve("icon.ico"), true);
// }
// if (!linuxCopied) {
// IOUtils.copyFile(defaultIconLoader.getResourceAsStream("icon.png"), iconsDir.resolve("icon.png"), true);
// }
// if (!macCopied) {
// IOUtils.copyFile(defaultIconLoader.getResourceAsStream("icon.icns"), iconsDir.resolve("icon.icns"), true);
// }
// }

private static String getIconExtension(File potential, String[] validExtensions) {
for (String valid : validExtensions) {
if (potential.getName().endsWith(valid)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

public class GitUtils {

// Folder needs to be created before clone
public static void cloneRepoByTag(String repositoryURL, String branch, String destinationFolder) throws GitAPIException {
// Folder needs to be created before clone
Git.cloneRepository()
.setURI(repositoryURL)
.setDirectory(new File(destinationFolder))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.attias.open.interactive.simulation.deployer.utils;

import org.attias.open.interactive.simulation.core.backend.engine.AppConfiguration;
import org.attias.open.interactive.simulation.core.utils.Version;
import org.attias.open.interactive.simulation.deployer.Constant;
import org.attias.open.interactive.simulation.deployer.OISException;
import org.gradle.api.GradleException;
import org.gradle.api.invocation.Gradle;
import org.gradle.tooling.BuildLauncher;
import org.gradle.tooling.GradleConnector;
import org.gradle.tooling.ProjectConnection;
Expand Down Expand Up @@ -53,4 +56,11 @@ public static Path[] getGeneratedArtifactsItems(Path buildPath, AppConfiguration
}
throw new OISException("Unsupported platform type " + platform);
}

public static void checkGradleVersionSupported(Gradle gradle) throws GradleException {
String gradleVersion = gradle.getGradleVersion();
if (!new Version(gradleVersion).isAtLeast(Constant.MIN_GRADLE_VERSION)) {
throw new OISException("Can't apply OIS deployer plugin on Gradle version " + gradleVersion + ". Minimum supported Gradle is " + Constant.MIN_GRADLE_VERSION);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public static Path getProjectAssetsDirectory(Project project) {
}

public static Path getProjectDefaultResourcesDirPath(Project project) {
File file = project.file("src/main/resources");
File file = project.file("src" + File.separator + "main" + File.separator + "resources");
if (file.exists() && file.isDirectory() && file.list().length > 0) {
return file.toPath();
}
Expand Down

0 comments on commit b96db79

Please sign in to comment.