diff --git a/build.gradle b/build.gradle index d6db46c01..b2fbe60a1 100644 --- a/build.gradle +++ b/build.gradle @@ -23,6 +23,8 @@ repositories { } dependencies { + implementation project(":jbang-core") + implementation 'com.offbytwo:docopt:0.6.0.20150202' implementation 'org.apache.commons:commons-text:1.9' diff --git a/jbang-core/.gitignore b/jbang-core/.gitignore new file mode 100644 index 000000000..b46b8e314 --- /dev/null +++ b/jbang-core/.gitignore @@ -0,0 +1,22 @@ +.classpath +.project +.vscode +.settings +target +.idea +*.iml +/build +.gradle +.factorypath +bin +homebrew-tap +RESULTS +*.db +jbang-action +out +node_modules +package-lock.json +*.jfr +itests/hello.java +*.class +CHANGELOG.md diff --git a/jbang-core/build.gradle b/jbang-core/build.gradle new file mode 100644 index 000000000..9d825dbb3 --- /dev/null +++ b/jbang-core/build.gradle @@ -0,0 +1,37 @@ +plugins { + id 'java' + id 'de.fuerstenau.buildconfig' +} + +repositories { + mavenCentral() + maven { url 'https://jitpack.io' } +} + +dependencies { + implementation 'info.picocli:picocli:4.6.1' + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'org.jsoup:jsoup:1.13.1' + implementation 'io.quarkus.qute:qute-core:1.12.2.Final' + implementation 'org.jboss:jandex:2.2.3.Final' + implementation 'org.apache.commons:commons-compress:1.20' + + implementation 'org.codehaus.plexus:plexus-java:1.0.6' + implementation 'kr.motd.maven:os-maven-plugin:1.7.0' + + implementation 'com.github.jbangdev.jbang-resolver:shrinkwrap-resolver-api:3.1.5-allowpom' + implementation 'com.github.jbangdev.jbang-resolver:shrinkwrap-resolver-impl-maven:3.1.5-allowpom' + + testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.1' + testImplementation 'org.hamcrest:hamcrest-library:2.2' + testImplementation 'com.github.stefanbirkner:system-rules:1.17.2' +} + +test { + useJUnitPlatform() +} + +group 'dev.jbang' +sourceCompatibility = '8' +targetCompatibility = '8' diff --git a/src/main/java/dev/jbang/Cache.java b/jbang-core/src/main/java/dev/jbang/Cache.java similarity index 100% rename from src/main/java/dev/jbang/Cache.java rename to jbang-core/src/main/java/dev/jbang/Cache.java diff --git a/src/main/java/dev/jbang/Settings.java b/jbang-core/src/main/java/dev/jbang/Settings.java similarity index 100% rename from src/main/java/dev/jbang/Settings.java rename to jbang-core/src/main/java/dev/jbang/Settings.java diff --git a/src/main/java/dev/jbang/catalog/Alias.java b/jbang-core/src/main/java/dev/jbang/catalog/Alias.java similarity index 100% rename from src/main/java/dev/jbang/catalog/Alias.java rename to jbang-core/src/main/java/dev/jbang/catalog/Alias.java diff --git a/src/main/java/dev/jbang/catalog/Catalog.java b/jbang-core/src/main/java/dev/jbang/catalog/Catalog.java similarity index 100% rename from src/main/java/dev/jbang/catalog/Catalog.java rename to jbang-core/src/main/java/dev/jbang/catalog/Catalog.java diff --git a/src/main/java/dev/jbang/catalog/CatalogItem.java b/jbang-core/src/main/java/dev/jbang/catalog/CatalogItem.java similarity index 100% rename from src/main/java/dev/jbang/catalog/CatalogItem.java rename to jbang-core/src/main/java/dev/jbang/catalog/CatalogItem.java diff --git a/src/main/java/dev/jbang/catalog/CatalogRef.java b/jbang-core/src/main/java/dev/jbang/catalog/CatalogRef.java similarity index 100% rename from src/main/java/dev/jbang/catalog/CatalogRef.java rename to jbang-core/src/main/java/dev/jbang/catalog/CatalogRef.java diff --git a/src/main/java/dev/jbang/catalog/CatalogUtil.java b/jbang-core/src/main/java/dev/jbang/catalog/CatalogUtil.java similarity index 100% rename from src/main/java/dev/jbang/catalog/CatalogUtil.java rename to jbang-core/src/main/java/dev/jbang/catalog/CatalogUtil.java diff --git a/src/main/java/dev/jbang/catalog/ImplicitCatalogRef.java b/jbang-core/src/main/java/dev/jbang/catalog/ImplicitCatalogRef.java similarity index 100% rename from src/main/java/dev/jbang/catalog/ImplicitCatalogRef.java rename to jbang-core/src/main/java/dev/jbang/catalog/ImplicitCatalogRef.java diff --git a/src/main/java/dev/jbang/catalog/Template.java b/jbang-core/src/main/java/dev/jbang/catalog/Template.java similarity index 100% rename from src/main/java/dev/jbang/catalog/Template.java rename to jbang-core/src/main/java/dev/jbang/catalog/Template.java diff --git a/src/main/java/dev/jbang/cli/BaseBuildCommand.java b/jbang-core/src/main/java/dev/jbang/cli/BaseBuildCommand.java similarity index 100% rename from src/main/java/dev/jbang/cli/BaseBuildCommand.java rename to jbang-core/src/main/java/dev/jbang/cli/BaseBuildCommand.java diff --git a/src/main/java/dev/jbang/cli/BaseCommand.java b/jbang-core/src/main/java/dev/jbang/cli/BaseCommand.java similarity index 100% rename from src/main/java/dev/jbang/cli/BaseCommand.java rename to jbang-core/src/main/java/dev/jbang/cli/BaseCommand.java diff --git a/src/main/java/dev/jbang/cli/BaseScriptCommand.java b/jbang-core/src/main/java/dev/jbang/cli/BaseScriptCommand.java similarity index 100% rename from src/main/java/dev/jbang/cli/BaseScriptCommand.java rename to jbang-core/src/main/java/dev/jbang/cli/BaseScriptCommand.java diff --git a/src/main/java/dev/jbang/cli/DependencyInfoMixin.java b/jbang-core/src/main/java/dev/jbang/cli/DependencyInfoMixin.java similarity index 100% rename from src/main/java/dev/jbang/cli/DependencyInfoMixin.java rename to jbang-core/src/main/java/dev/jbang/cli/DependencyInfoMixin.java diff --git a/src/main/java/dev/jbang/cli/ExitException.java b/jbang-core/src/main/java/dev/jbang/cli/ExitException.java similarity index 100% rename from src/main/java/dev/jbang/cli/ExitException.java rename to jbang-core/src/main/java/dev/jbang/cli/ExitException.java diff --git a/src/main/java/dev/jbang/dependencies/ArtifactInfo.java b/jbang-core/src/main/java/dev/jbang/dependencies/ArtifactInfo.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/ArtifactInfo.java rename to jbang-core/src/main/java/dev/jbang/dependencies/ArtifactInfo.java diff --git a/src/main/java/dev/jbang/dependencies/DependencyCache.java b/jbang-core/src/main/java/dev/jbang/dependencies/DependencyCache.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/DependencyCache.java rename to jbang-core/src/main/java/dev/jbang/dependencies/DependencyCache.java diff --git a/src/main/java/dev/jbang/dependencies/DependencyException.java b/jbang-core/src/main/java/dev/jbang/dependencies/DependencyException.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/DependencyException.java rename to jbang-core/src/main/java/dev/jbang/dependencies/DependencyException.java diff --git a/src/main/java/dev/jbang/dependencies/DependencyResolver.java b/jbang-core/src/main/java/dev/jbang/dependencies/DependencyResolver.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/DependencyResolver.java rename to jbang-core/src/main/java/dev/jbang/dependencies/DependencyResolver.java diff --git a/src/main/java/dev/jbang/dependencies/DependencyUtil.java b/jbang-core/src/main/java/dev/jbang/dependencies/DependencyUtil.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/DependencyUtil.java rename to jbang-core/src/main/java/dev/jbang/dependencies/DependencyUtil.java diff --git a/src/main/java/dev/jbang/dependencies/Detector.java b/jbang-core/src/main/java/dev/jbang/dependencies/Detector.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/Detector.java rename to jbang-core/src/main/java/dev/jbang/dependencies/Detector.java diff --git a/src/main/java/dev/jbang/dependencies/JitPackUtil.java b/jbang-core/src/main/java/dev/jbang/dependencies/JitPackUtil.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/JitPackUtil.java rename to jbang-core/src/main/java/dev/jbang/dependencies/JitPackUtil.java diff --git a/src/main/java/dev/jbang/dependencies/MavenRepo.java b/jbang-core/src/main/java/dev/jbang/dependencies/MavenRepo.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/MavenRepo.java rename to jbang-core/src/main/java/dev/jbang/dependencies/MavenRepo.java diff --git a/src/main/java/dev/jbang/dependencies/ModularClassPath.java b/jbang-core/src/main/java/dev/jbang/dependencies/ModularClassPath.java similarity index 100% rename from src/main/java/dev/jbang/dependencies/ModularClassPath.java rename to jbang-core/src/main/java/dev/jbang/dependencies/ModularClassPath.java diff --git a/src/main/java/dev/jbang/net/EditorManager.java b/jbang-core/src/main/java/dev/jbang/net/EditorManager.java similarity index 100% rename from src/main/java/dev/jbang/net/EditorManager.java rename to jbang-core/src/main/java/dev/jbang/net/EditorManager.java diff --git a/src/main/java/dev/jbang/net/JdkManager.java b/jbang-core/src/main/java/dev/jbang/net/JdkManager.java similarity index 100% rename from src/main/java/dev/jbang/net/JdkManager.java rename to jbang-core/src/main/java/dev/jbang/net/JdkManager.java diff --git a/src/main/java/dev/jbang/net/KotlinManager.java b/jbang-core/src/main/java/dev/jbang/net/KotlinManager.java similarity index 100% rename from src/main/java/dev/jbang/net/KotlinManager.java rename to jbang-core/src/main/java/dev/jbang/net/KotlinManager.java diff --git a/src/main/java/dev/jbang/net/TrustedSources.java b/jbang-core/src/main/java/dev/jbang/net/TrustedSources.java similarity index 100% rename from src/main/java/dev/jbang/net/TrustedSources.java rename to jbang-core/src/main/java/dev/jbang/net/TrustedSources.java diff --git a/src/main/java/dev/jbang/source/JarSource.java b/jbang-core/src/main/java/dev/jbang/source/JarSource.java similarity index 100% rename from src/main/java/dev/jbang/source/JarSource.java rename to jbang-core/src/main/java/dev/jbang/source/JarSource.java diff --git a/src/main/java/dev/jbang/source/KotlinScriptSource.java b/jbang-core/src/main/java/dev/jbang/source/KotlinScriptSource.java similarity index 100% rename from src/main/java/dev/jbang/source/KotlinScriptSource.java rename to jbang-core/src/main/java/dev/jbang/source/KotlinScriptSource.java diff --git a/src/main/java/dev/jbang/source/RefTarget.java b/jbang-core/src/main/java/dev/jbang/source/RefTarget.java similarity index 100% rename from src/main/java/dev/jbang/source/RefTarget.java rename to jbang-core/src/main/java/dev/jbang/source/RefTarget.java diff --git a/src/main/java/dev/jbang/source/ResourceRef.java b/jbang-core/src/main/java/dev/jbang/source/ResourceRef.java similarity index 100% rename from src/main/java/dev/jbang/source/ResourceRef.java rename to jbang-core/src/main/java/dev/jbang/source/ResourceRef.java diff --git a/src/main/java/dev/jbang/source/ResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/ResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/ResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/ResourceResolver.java diff --git a/src/main/java/dev/jbang/source/RunContext.java b/jbang-core/src/main/java/dev/jbang/source/RunContext.java similarity index 100% rename from src/main/java/dev/jbang/source/RunContext.java rename to jbang-core/src/main/java/dev/jbang/source/RunContext.java diff --git a/src/main/java/dev/jbang/source/ScriptSource.java b/jbang-core/src/main/java/dev/jbang/source/ScriptSource.java similarity index 100% rename from src/main/java/dev/jbang/source/ScriptSource.java rename to jbang-core/src/main/java/dev/jbang/source/ScriptSource.java diff --git a/src/main/java/dev/jbang/source/Source.java b/jbang-core/src/main/java/dev/jbang/source/Source.java similarity index 100% rename from src/main/java/dev/jbang/source/Source.java rename to jbang-core/src/main/java/dev/jbang/source/Source.java diff --git a/src/main/java/dev/jbang/source/resolvers/ClasspathResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/ClasspathResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/ClasspathResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/ClasspathResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/CombinedResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/CombinedResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/CombinedResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/CombinedResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/FileResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/FileResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/FileResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/FileResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/GavResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/GavResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/GavResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/GavResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/RemoteResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/RemoteResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/RemoteResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/RemoteResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/RenamingScriptResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/RenamingScriptResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/RenamingScriptResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/RenamingScriptResourceResolver.java diff --git a/src/main/java/dev/jbang/source/resolvers/StdinScriptResourceResolver.java b/jbang-core/src/main/java/dev/jbang/source/resolvers/StdinScriptResourceResolver.java similarity index 100% rename from src/main/java/dev/jbang/source/resolvers/StdinScriptResourceResolver.java rename to jbang-core/src/main/java/dev/jbang/source/resolvers/StdinScriptResourceResolver.java diff --git a/src/main/java/dev/jbang/spi/IntegrationManager.java b/jbang-core/src/main/java/dev/jbang/spi/IntegrationManager.java similarity index 100% rename from src/main/java/dev/jbang/spi/IntegrationManager.java rename to jbang-core/src/main/java/dev/jbang/spi/IntegrationManager.java diff --git a/src/main/java/dev/jbang/spi/IntegrationResult.java b/jbang-core/src/main/java/dev/jbang/spi/IntegrationResult.java similarity index 100% rename from src/main/java/dev/jbang/spi/IntegrationResult.java rename to jbang-core/src/main/java/dev/jbang/spi/IntegrationResult.java diff --git a/src/main/java/dev/jbang/util/ConsoleInput.java b/jbang-core/src/main/java/dev/jbang/util/ConsoleInput.java similarity index 100% rename from src/main/java/dev/jbang/util/ConsoleInput.java rename to jbang-core/src/main/java/dev/jbang/util/ConsoleInput.java diff --git a/src/main/java/dev/jbang/util/ConsoleInputReadTask.java b/jbang-core/src/main/java/dev/jbang/util/ConsoleInputReadTask.java similarity index 100% rename from src/main/java/dev/jbang/util/ConsoleInputReadTask.java rename to jbang-core/src/main/java/dev/jbang/util/ConsoleInputReadTask.java diff --git a/src/main/java/dev/jbang/util/ConsoleOutput.java b/jbang-core/src/main/java/dev/jbang/util/ConsoleOutput.java similarity index 100% rename from src/main/java/dev/jbang/util/ConsoleOutput.java rename to jbang-core/src/main/java/dev/jbang/util/ConsoleOutput.java diff --git a/src/main/java/dev/jbang/util/JarUtil.java b/jbang-core/src/main/java/dev/jbang/util/JarUtil.java similarity index 100% rename from src/main/java/dev/jbang/util/JarUtil.java rename to jbang-core/src/main/java/dev/jbang/util/JarUtil.java diff --git a/src/main/java/dev/jbang/util/JavaUtil.java b/jbang-core/src/main/java/dev/jbang/util/JavaUtil.java similarity index 100% rename from src/main/java/dev/jbang/util/JavaUtil.java rename to jbang-core/src/main/java/dev/jbang/util/JavaUtil.java diff --git a/src/main/java/dev/jbang/util/PropertiesValueResolver.java b/jbang-core/src/main/java/dev/jbang/util/PropertiesValueResolver.java similarity index 100% rename from src/main/java/dev/jbang/util/PropertiesValueResolver.java rename to jbang-core/src/main/java/dev/jbang/util/PropertiesValueResolver.java diff --git a/src/main/java/dev/jbang/util/TemplateEngine.java b/jbang-core/src/main/java/dev/jbang/util/TemplateEngine.java similarity index 97% rename from src/main/java/dev/jbang/util/TemplateEngine.java rename to jbang-core/src/main/java/dev/jbang/util/TemplateEngine.java index a6d208618..517b4dd80 100644 --- a/src/main/java/dev/jbang/util/TemplateEngine.java +++ b/jbang-core/src/main/java/dev/jbang/util/TemplateEngine.java @@ -10,8 +10,6 @@ import java.nio.file.Paths; import java.util.Optional; -import dev.jbang.Main; - import io.quarkus.qute.Engine; import io.quarkus.qute.ReflectionValueResolver; import io.quarkus.qute.Template; @@ -36,7 +34,7 @@ public class TemplateEngine { private URL locatePath(String path) { ClassLoader cl = Thread.currentThread().getContextClassLoader(); if (cl == null) { - cl = Main.class.getClassLoader(); + cl = TemplateEngine.class.getClassLoader(); } return cl.getResource(path); } diff --git a/src/main/java/dev/jbang/util/UnpackUtil.java b/jbang-core/src/main/java/dev/jbang/util/UnpackUtil.java similarity index 100% rename from src/main/java/dev/jbang/util/UnpackUtil.java rename to jbang-core/src/main/java/dev/jbang/util/UnpackUtil.java diff --git a/src/main/java/dev/jbang/util/Util.java b/jbang-core/src/main/java/dev/jbang/util/Util.java similarity index 100% rename from src/main/java/dev/jbang/util/Util.java rename to jbang-core/src/main/java/dev/jbang/util/Util.java diff --git a/src/main/java/dev/jbang/util/VersionChecker.java b/jbang-core/src/main/java/dev/jbang/util/VersionChecker.java similarity index 100% rename from src/main/java/dev/jbang/util/VersionChecker.java rename to jbang-core/src/main/java/dev/jbang/util/VersionChecker.java diff --git a/jbang-core/src/test/java/dev/jbang/BaseTest.java b/jbang-core/src/test/java/dev/jbang/BaseTest.java new file mode 100644 index 000000000..dba9faa82 --- /dev/null +++ b/jbang-core/src/test/java/dev/jbang/BaseTest.java @@ -0,0 +1,52 @@ +package dev.jbang; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import org.junit.Rule; +import org.junit.contrib.java.lang.system.EnvironmentVariables; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.io.TempDir; + +import dev.jbang.util.Util; + +public abstract class BaseTest { + + @BeforeEach + void initEnv(@TempDir Path tempPath) throws IOException { + jbangTempDir = Files.createDirectory(tempPath.resolve("jbang")); + cwdDir = Files.createDirectory(tempPath.resolve("cwd")); + Util.setCwd(cwdDir); + environmentVariables.set(Settings.JBANG_DIR, jbangTempDir.toString()); + environmentVariables.set(Settings.JBANG_CACHE_DIR, jbangTempDir.resolve("cache").toString()); + environmentVariables.set(Settings.ENV_NO_VERSION_CHECK, "true"); + if (Util.isWindows()) { + environmentVariables.set(Util.JBANG_RUNTIME_SHELL, "cmd"); + } + } + + public static final String EXAMPLES_FOLDER = "itests"; + public static Path examplesTestFolder; + + @BeforeAll + static void init() throws URISyntaxException { + URL examplesUrl = BaseTest.class.getClassLoader().getResource(EXAMPLES_FOLDER); + if (examplesUrl == null) { + examplesTestFolder = Paths.get(EXAMPLES_FOLDER).toAbsolutePath(); + } else { + examplesTestFolder = Paths.get(new File(examplesUrl.toURI()).getAbsolutePath()); + } + } + + @Rule + public final EnvironmentVariables environmentVariables = new EnvironmentVariables(); + + public Path jbangTempDir; + public Path cwdDir; +} diff --git a/src/test/java/dev/jbang/dependencies/DependencyResolverTest.java b/jbang-core/src/test/java/dev/jbang/dependencies/DependencyResolverTest.java similarity index 100% rename from src/test/java/dev/jbang/dependencies/DependencyResolverTest.java rename to jbang-core/src/test/java/dev/jbang/dependencies/DependencyResolverTest.java diff --git a/src/test/java/dev/jbang/dependencies/TestArtifactInfo.java b/jbang-core/src/test/java/dev/jbang/dependencies/TestArtifactInfo.java similarity index 100% rename from src/test/java/dev/jbang/dependencies/TestArtifactInfo.java rename to jbang-core/src/test/java/dev/jbang/dependencies/TestArtifactInfo.java diff --git a/src/test/java/dev/jbang/dependencies/TestGrape.java b/jbang-core/src/test/java/dev/jbang/dependencies/TestGrape.java similarity index 100% rename from src/test/java/dev/jbang/dependencies/TestGrape.java rename to jbang-core/src/test/java/dev/jbang/dependencies/TestGrape.java diff --git a/src/test/java/dev/jbang/dependencies/TestJitPack.java b/jbang-core/src/test/java/dev/jbang/dependencies/TestJitPack.java similarity index 100% rename from src/test/java/dev/jbang/dependencies/TestJitPack.java rename to jbang-core/src/test/java/dev/jbang/dependencies/TestJitPack.java diff --git a/src/test/java/dev/jbang/net/TestTrustEdit.java b/jbang-core/src/test/java/dev/jbang/net/TestTrustEdit.java similarity index 100% rename from src/test/java/dev/jbang/net/TestTrustEdit.java rename to jbang-core/src/test/java/dev/jbang/net/TestTrustEdit.java diff --git a/src/test/java/dev/jbang/net/TestTrustedSources.java b/jbang-core/src/test/java/dev/jbang/net/TestTrustedSources.java similarity index 100% rename from src/test/java/dev/jbang/net/TestTrustedSources.java rename to jbang-core/src/test/java/dev/jbang/net/TestTrustedSources.java diff --git a/src/test/java/dev/jbang/source/TestSameSourceInDifferentPaths.java b/jbang-core/src/test/java/dev/jbang/source/TestSameSourceInDifferentPaths.java similarity index 100% rename from src/test/java/dev/jbang/source/TestSameSourceInDifferentPaths.java rename to jbang-core/src/test/java/dev/jbang/source/TestSameSourceInDifferentPaths.java diff --git a/src/test/java/dev/jbang/source/TestScript.java b/jbang-core/src/test/java/dev/jbang/source/TestScript.java similarity index 100% rename from src/test/java/dev/jbang/source/TestScript.java rename to jbang-core/src/test/java/dev/jbang/source/TestScript.java diff --git a/src/test/java/dev/jbang/source/TestSourcesMultipleSomeMissingFiles.java b/jbang-core/src/test/java/dev/jbang/source/TestSourcesMultipleSomeMissingFiles.java similarity index 100% rename from src/test/java/dev/jbang/source/TestSourcesMultipleSomeMissingFiles.java rename to jbang-core/src/test/java/dev/jbang/source/TestSourcesMultipleSomeMissingFiles.java diff --git a/src/test/java/dev/jbang/source/TestSourcesMutualDependency.java b/jbang-core/src/test/java/dev/jbang/source/TestSourcesMutualDependency.java similarity index 100% rename from src/test/java/dev/jbang/source/TestSourcesMutualDependency.java rename to jbang-core/src/test/java/dev/jbang/source/TestSourcesMutualDependency.java diff --git a/src/test/java/dev/jbang/source/TestSourcesRecursivelyMultipleFiles.java b/jbang-core/src/test/java/dev/jbang/source/TestSourcesRecursivelyMultipleFiles.java similarity index 100% rename from src/test/java/dev/jbang/source/TestSourcesRecursivelyMultipleFiles.java rename to jbang-core/src/test/java/dev/jbang/source/TestSourcesRecursivelyMultipleFiles.java diff --git a/src/test/java/dev/jbang/util/TestTrustedSources.java b/jbang-core/src/test/java/dev/jbang/util/TestTrustedSources.java similarity index 100% rename from src/test/java/dev/jbang/util/TestTrustedSources.java rename to jbang-core/src/test/java/dev/jbang/util/TestTrustedSources.java diff --git a/src/test/java/dev/jbang/util/TestUtil.java b/jbang-core/src/test/java/dev/jbang/util/TestUtil.java similarity index 100% rename from src/test/java/dev/jbang/util/TestUtil.java rename to jbang-core/src/test/java/dev/jbang/util/TestUtil.java diff --git a/settings.gradle b/settings.gradle index 3a2e547ff..fb52018c8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,7 +8,6 @@ plugins { id "com.gradle.enterprise" } - // Configuration of com.gradle.enterprise (build scan) plugin gradleEnterprise { buildScan { @@ -20,3 +19,5 @@ gradleEnterprise { //publishAlways() } } + +include 'jbang-core' diff --git a/src/test/java/dev/jbang/BaseTest.java b/src/test/java/dev/jbang/BaseTestExt.java similarity index 58% rename from src/test/java/dev/jbang/BaseTest.java rename to src/test/java/dev/jbang/BaseTestExt.java index 83a580489..eccae7270 100644 --- a/src/test/java/dev/jbang/BaseTest.java +++ b/src/test/java/dev/jbang/BaseTestExt.java @@ -1,64 +1,19 @@ package dev.jbang; -import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; -import java.net.URISyntaxException; -import java.net.URL; import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.function.Function; import org.apache.commons.io.output.ByteArrayOutputStream; -import org.junit.Rule; -import org.junit.contrib.java.lang.system.EnvironmentVariables; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.io.TempDir; import dev.jbang.cli.BaseCommand; import dev.jbang.cli.JBang; -import dev.jbang.cli.TestRun; -import dev.jbang.util.Util; import picocli.CommandLine; -public abstract class BaseTest { - - @BeforeEach - void initEnv(@TempDir Path tempPath) throws IOException { - jbangTempDir = Files.createDirectory(tempPath.resolve("jbang")); - cwdDir = Files.createDirectory(tempPath.resolve("cwd")); - Util.setCwd(cwdDir); - environmentVariables.set(Settings.JBANG_DIR, jbangTempDir.toString()); - environmentVariables.set(Settings.JBANG_CACHE_DIR, jbangTempDir.resolve("cache").toString()); - environmentVariables.set(Settings.ENV_NO_VERSION_CHECK, "true"); - if (Util.isWindows()) { - environmentVariables.set(Util.JBANG_RUNTIME_SHELL, "cmd"); - } - } - - public static final String EXAMPLES_FOLDER = "itests"; - public static Path examplesTestFolder; - - @BeforeAll - static void init() throws URISyntaxException, IOException { - URL examplesUrl = TestRun.class.getClassLoader().getResource(EXAMPLES_FOLDER); - if (examplesUrl == null) { - examplesTestFolder = Paths.get(EXAMPLES_FOLDER).toAbsolutePath(); - } else { - examplesTestFolder = Paths.get(new File(examplesUrl.toURI()).getAbsolutePath()); - } - } - - @Rule - public final EnvironmentVariables environmentVariables = new EnvironmentVariables(); - - public Path jbangTempDir; - public Path cwdDir; +public abstract class BaseTestExt extends BaseTest { protected ExecutionResult checkedRun(Function commandRunner, String... args) throws IOException { JBang jbang = new JBang(); diff --git a/src/test/java/dev/jbang/cli/TestAddDeps.java b/src/test/java/dev/jbang/cli/TestAddDeps.java index 03a648187..aa3c31b51 100644 --- a/src/test/java/dev/jbang/cli/TestAddDeps.java +++ b/src/test/java/dev/jbang/cli/TestAddDeps.java @@ -12,10 +12,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import dev.jbang.BaseTest; +import dev.jbang.BaseTestExt; import dev.jbang.util.Util; -class TestAddDeps extends BaseTest { +class TestAddDeps extends BaseTestExt { String example = "\n" + "\n" + diff --git a/src/test/java/dev/jbang/cli/TestAlias.java b/src/test/java/dev/jbang/cli/TestAlias.java index b50f19b6c..48a67809b 100644 --- a/src/test/java/dev/jbang/cli/TestAlias.java +++ b/src/test/java/dev/jbang/cli/TestAlias.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import dev.jbang.BaseTest; +import dev.jbang.BaseTestExt; import dev.jbang.catalog.Alias; import dev.jbang.catalog.Catalog; import dev.jbang.catalog.CatalogUtil; @@ -29,7 +29,7 @@ import picocli.CommandLine; -public class TestAlias extends BaseTest { +public class TestAlias extends BaseTestExt { static final String aliases = "{\n" + " \"aliases\": {\n" +