Skip to content

Commit

Permalink
imported java.nio.file.Files and java.nio.file.Paths
Browse files Browse the repository at this point in the history
corrected the paths of C.java and D.java
Added explicit dependencies in compileTestJava, compileModules, createJpfClassesJar
  • Loading branch information
sanidhya00081 committed Jan 12, 2025
1 parent fc442af commit 95fde67
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 38 deletions.
7 changes: 0 additions & 7 deletions C.java

This file was deleted.

3 changes: 0 additions & 3 deletions D.java

This file was deleted.

65 changes: 37 additions & 28 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import java.nio.file.Files
import java.nio.file.Paths
plugins {
id 'java'
id 'maven-publish'
Expand Down Expand Up @@ -57,6 +59,38 @@ apply from: "gradle/build-resources.gradle"

compileJava.dependsOn(copyLibs)

tasks.register("modifyAndCompileD") {
// Declaring inputs and outputs to make the task compatible with the configuration cache
inputs.file("src/main/java/D.java")
outputs.dir("${buildDir}/classes/main/java")

doLast {
// Step 1: Defining file paths
def originalFilePath = "src/main/java/D.java"
def originalFile = Paths.get(originalFilePath)
def tempDir = file("${buildDir}/tempD")
def buildClassesDir = file("${buildDir}/classes/java/main")

// Step 2: Creating a temporary directory
tempDir.mkdirs()

def content = Files.readString(originalFile)

content = content.replace("static ", "")

def modifiedFile = file("${tempDir}/D.java")

Files.writeString(modifiedFile.toPath(), content)

def javac = org.gradle.internal.jvm.Jvm.current().javacExecutable
exec {
commandLine javac, "-d", buildClassesDir, modifiedFile
}

println "Modified and recompiled D.java without 'static'."
}
}

tasks.named('compileClassesJava') {
dependsOn(copyLibs)
dependsOn(copyResources)
Expand All @@ -76,6 +110,7 @@ tasks.named('compilePeersJava') {
tasks.named('compileTestJava') {
dependsOn(copyLibs)
dependsOn(copyResources)
mustRunAfter(modifyAndCompileD)
}
tasks.named('jar') {
dependsOn(copyLibs)
Expand All @@ -88,6 +123,7 @@ tasks.named("test") {
tasks.register('compileModules', JavaCompile) {
dependsOn(copyLibs)
dependsOn compileTestJava
dependsOn modifyAndCompileD
source = fileTree(dir: 'src/classes/modules')
classpath = files('build/annotations', 'build/classes', 'build/main')
options.compilerArgs = [
Expand Down Expand Up @@ -123,6 +159,7 @@ tasks.register('createJpfClassesJar', Jar) {
dependsOn(copyLibs)
dependsOn compile
dependsOn copyResources
dependsOn modifyAndCompileD

from sourceSets.classes.java.destinationDirectory
from sourceSets.annotations.java.destinationDirectory
Expand Down Expand Up @@ -271,34 +308,6 @@ tasks.register('buildJars') {
dependsOn createRunJpfJar
dependsOn createRunTestJar
}
tasks.register("modifyAndCompileD") {
// Declaring inputs and outputs to make the task compatible with the configuration cache
inputs.file("src/main/java/D.java")
outputs.dir("${buildDir}/classes/java/main")

doLast {
// Step 1: Defining file paths
def originalFile = "src/main/java/D.java"
def tempDir = file("${buildDir}/tempD")
def buildClassesDir = file("${buildDir}/classes/java/main")

// Step 2: Creating a temporary directory
tempDir.mkdirs()

// Step 3: Modifying D.java by removing the "static" keyword
def modifiedFile = file("${sourceDir}/D.java")
modifiedFile.text = originalFile.text.replace("static ", "")

// Step 4: Compiling the modified D.java
def javac = org.gradle.internal.jvm.Jvm.current().javacExecutable
exec {
commandLine javac, "-d", buildClassesDir, modifiedFile
}

println "Modified and recompiled D.java without 'static'."
}
}

test {
description = "Runs core regression tests."

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/C.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class C {
public static void main(String[] a) {
int i = 123;
D.m("foobar");
System.out.println(i);
}
}
3 changes: 3 additions & 0 deletions src/main/java/D.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class D {
public static String m(String s) { return s; }
}

0 comments on commit 95fde67

Please sign in to comment.