Skip to content

Commit eca0d5b

Browse files
committed
Update Scala3 example to Scala 3.8.
1 parent 3212d69 commit eca0d5b

4 files changed

Lines changed: 31 additions & 18 deletions

File tree

Scala3Example/pom.xml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
<artifactId>Scala3Example</artifactId>
1313

1414
<properties>
15-
<scala.boostrapVersion>2.13.15</scala.boostrapVersion>
16-
<scala.version>3.6.2</scala.version>
15+
<!-- Scala 2.13 bootstrap library no longer necessary after Scala 3.8 -->
16+
<!-- <scala.boostrapVersion>2.13.18</scala.boostrapVersion>-->
17+
<scala.version>3.8.3</scala.version>
1718
</properties>
1819

1920
<build>
@@ -82,17 +83,17 @@
8283
<dependency>
8384
<groupId>org.scala-lang</groupId>
8485
<artifactId>scala-library</artifactId>
85-
<version>${scala.boostrapVersion}</version>
86-
<scope>provided</scope>
87-
</dependency>
88-
89-
<dependency>
90-
<groupId>org.scala-lang</groupId>
91-
<artifactId>scala3-library_3</artifactId>
9286
<version>${scala.version}</version>
9387
<scope>provided</scope>
9488
</dependency>
9589

90+
<!-- <dependency>-->
91+
<!-- <groupId>org.scala-lang</groupId>-->
92+
<!-- <artifactId>scala3-library_3</artifactId>-->
93+
<!-- <version>${scala.version}</version>-->
94+
<!-- <scope>provided</scope>-->
95+
<!-- </dependency>-->
96+
9697
<!-- <dependency>-->
9798
<!-- <groupId>org.scala-lang</groupId>-->
9899
<!-- <artifactId>tasty-core3_${scala.version}</artifactId>-->

ScalaLoader-Common/src/main/java/xyz/janboerman/scalaloader/dependency/LibraryClassLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void addURL(URL url) {
6262
* loadClass(String name) is not overridden and that is very much intentional.
6363
* why? because the load-class method defines the search order.
6464
* and the default behaviour is ideal for us: we want to search in the parent classloader first!
65-
* why do we want to find classes first in the parent cloassloader?
65+
* why do we want to find classes first in the parent classloader?
6666
* because we want to use the use same class definitions for scala standard library types and bukkit types as the scalaplugins themselves.
6767
* so we shouldn't load those classes from a downloaded jar file.
6868
*/

ScalaLoader-Paper/src/main/java/xyz/janboerman/scalaloader/paper/plugin/ScalaPluginLoader.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,19 +89,28 @@ private static List<String> mavenDependencies(String scalaVersion) {
8989
"org.scala-lang:scala-reflect:" + scalaVersion);
9090

9191
boolean isScala3 = scalaVersion.startsWith("3.");
92-
if (isScala3)
93-
if ("3.0.0".equals(scalaVersion))
92+
if (isScala3) {
93+
if ("3.0.0".equals(scalaVersion)) {
9494
return listOf(
9595
"org.scala-lang:scala-library:" + ScalaVersion.getLatest_2_13().getVersion(),
9696
"org.scala-lang:scala-reflect:" + ScalaVersion.getLatest_2_13().getVersion(),
9797
"org.scala-lang:scala3-library_3.0.0-nonbootstrapped:3.0.0",
9898
"org.scala-lang:tasty-core_3.0.0-nonbootstrapped:3.0.0");
99-
else
100-
return listOf(
101-
"org.scala-lang:scala-library:" + ScalaVersion.getLatest_2_13().getVersion(),
102-
"org.scala-lang:scala-reflect:" + ScalaVersion.getLatest_2_13().getVersion(),
103-
"org.scala-lang:scala3-library_3:" + scalaVersion,
104-
"org.scala-lang:tasty-core_3:" + scalaVersion);
99+
} else {
100+
int minor = Integer.parseInt(scalaVersion.split("\\.")[1]);
101+
if (minor < 8) {
102+
return listOf(
103+
"org.scala-lang:scala-library:" + ScalaVersion.getLatest_2_13().getVersion(),
104+
"org.scala-lang:scala-reflect:" + ScalaVersion.getLatest_2_13().getVersion(),
105+
"org.scala-lang:scala3-library_3:" + scalaVersion,
106+
"org.scala-lang:tasty-core_3:" + scalaVersion);
107+
} else {
108+
return listOf(
109+
"org.scala-lang:scala-library:" + scalaVersion,
110+
"org.scala-lang:tasty-core_3:" + scalaVersion);
111+
}
112+
}
113+
}
105114

106115
throw new RuntimeException("Unrecognised Scala version: " + scalaVersion);
107116
}

ScalaLoader-Paper/src/main/java/xyz/janboerman/scalaloader/paper/plugin/description/ScalaDependency.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ public sealed interface ScalaDependency extends IScalaVersion permits Builtin, C
1212

1313
public String getVersionString();
1414

15+
/** Scala version defined using annotation @Scala(version = ScalaVersion.X_Y_Z)*/
1516
public static record Builtin(ScalaVersion scalaVersion) implements ScalaDependency {
1617
@Override
1718
public String getVersionString() {
1819
return scalaVersion().getVersion();
1920
}
2021
}
2122

23+
/** Scala version defined using annotation @CustomScala */
2224
public static record Custom(String scalaVersion, Map<String, String> urls, Map<String, String> sha1hashes) implements ScalaDependency {
2325
/** @deprecated Use canonical constructor instead. */
2426
@Deprecated
@@ -32,6 +34,7 @@ public String getVersionString() {
3234
}
3335
}
3436

37+
/** Scala version defined in the plugin.yml under the "scala-version" key. */
3538
public static record YamlDefined(String scalaVersion) implements ScalaDependency {
3639
@Override
3740
public String getVersionString() {

0 commit comments

Comments
 (0)